我需要从文本文件中读取一些数据并将其存储在2D数组中。 这段代码很好用:
#include <string.h>
#include <stdio.h>
int main() {
FILE *f = fopen("Read.txt", "r");
char buff[100][100];
char str[100];
int i = 0;
while(fgets(str, 100, f)) {
strcpy(buff[i], str);
i++;
}
return 0;
}
但是当我尝试将第5行中的buff定义更改为:
时,为什么它不起作用?char (*buff)[100];
我希望这个定义也能奏效。 我得到的错误:
Run-Time Check Failure #3 - The variable 'buff' is being used without being defined
答案 0 :(得分:3)
char (*buff)[100];
这里buff
是一个指向100个字符数组的指针。因此,首先应该将指针指向有效的内存位置,然后再在其中存储一些值。
假设您想要进行动态内存分配,那么您可以
char *buff[100];
现在在fgets()
循环中,将内存分配给每个指针,如
buff[i] = malloc(100);
注意这里buff是一个包含100个char指针的数组。