c - 为什么这会导致段错误?

标签 c arrays string malloc

我只是想 malloc 一个字符串数组,并将文件中的输入复制到这个数组中。这种行组合会导致段错误,我不知道为什么。

int count = 0;
char **output = (char**)malloc(numLines*257);
fgets(output[count], 257, input);

最佳答案

您已经为一个指针数组分配了空间,但是您还没有初始化任何这些指针。

int count = 0;
char **output = malloc(numLines*sizeof(char *));
int i;
for (i = 0; i < numLines; i++) {
  output[i] = malloc(257);
}
fgets(output[count], 257, input);

关于c - 为什么这会导致段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19301733/

相关文章:

c - Windows 上的堆损坏操作 C 中的结构指针数组

C 将文件流作为函数参数传递

python - NumPy 中的 cumsum 函数在添加时会衰减吗?

java - 如何验证字符串数组是否按字母顺序排序或不使用 java?

c - 为什么我的 C 编译器会发出警告?

python - 如何编写具有多个循环元素的字符串模板文件?

c - (这里是极端菜鸟)为什么这个 C 代码不能工作?

c - 如何从 TCP header 打印序列和确认号

c - 如何将指针指向数组的内容赋值?

c - 定义字符串数组