变量 'buff' 未定义就被使用
The variable 'buff' is being used without being defined
我需要从文本文件中读取一些数据并将其存储在二维数组中。
此代码运行良好:
#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
char (*buff)[100];
这里buff
是一个指向100个字符数组的指针。所以首先你应该让指针指向有效的内存位置,然后再在其中存储一些值。
假设您想进行动态内存分配,那么您可以
char *buff[100];
现在在 fgets()
循环中为每个指针单独分配内存,如
buff[i] = malloc(100);
注意这里的buff是一个100个字符指针的数组。
我需要从文本文件中读取一些数据并将其存储在二维数组中。 此代码运行良好:
#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
char (*buff)[100];
这里buff
是一个指向100个字符数组的指针。所以首先你应该让指针指向有效的内存位置,然后再在其中存储一些值。
假设您想进行动态内存分配,那么您可以
char *buff[100];
现在在 fgets()
循环中为每个指针单独分配内存,如
buff[i] = malloc(100);
注意这里的buff是一个100个字符指针的数组。