我正试图从一个文件中读取一些float到我创建的数组中,定义如下:

float *taps[3];

我正在读取文件中的浮动:
for (i = 0; i < 3; i++) {
fscanf(tapsInput, "%f", taps[i]);
}

我知道当指针指向错误的地方时会出现分段错误,但我不确定在这个设置中我的代码有什么问题。

最佳答案

我知道当指针指向某个错误的地方时就会出现分段错误
你的代码也是。在您的情况下,taps[i]是单元化的,并指向无效内存。因此,在taps[i]中存储任何内容之前,需要为其分配内存。
在另一种方法中,我不认为taps是指向-float的指针数组的原因。你可以简单地

float taps[3];

然后,将各个元素的地址传递给fscanf(),如
fscanf(tapsInput, "%f", &taps[i]);

关于c - C中的指针和段错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37954206/

10-11 21:17