变量 '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个字符指针的数组。