我已经阅读了几篇与我在 C 上的问题相关的帖子。这确实帮助我减少了我的错误。但是,我仍然遇到其他帖子无法为我解决的问题。基本上,这就是我想要做的。
在 main 中定义一个数组。我将指向该数组的指针传递给函数。该函数将打开一个文件,解析该文件,并将该文件中的信息放入我传入的指针的数组中。好吧,它失败了。
我得到的错误是:
work.c:12: error: array type has incomplete element type
work.c: In function ‘main’:
work.c:20: error: type of formal parameter 1 is incomplete
work.c: At top level:
work.c:25: error: array type has incomplete element type
整个代码如下。但我认为你只需要关注我如何定义我的数组和指针等等。
#include <stdio.h>
#include <stdlib.h>
//Defining Preprocessed Functions
char readFile(char array[][], int, int);
//void displayStudentInfo(int*);
//Implements Step 1 and 2 of Student Instuctions
int main(int argc, char* argv[])
{
int x = 256;
int y = 256;
char arrays[x][y];
readFile(&arrays,x,y);
//displayStudentInfo(&array);
return 0;
}
char readFile(char array[][], int x, int y)
{
char line[256]; //Three columns 0, 1, 2 corresponds to firstname, lastname, score.
char* string;
int columns = 3;
x = 0;
//int y; //Defines rows and columns of 2D array to store data
//char array[x][y]; //Defines the array which stores firstname, lastname, and score
FILE *file;
file = fopen("input.txt", "r");
//Test to make sure file can open
if(file == NULL)
{
printf("Error: Cannot open file.\n");
exit(1);
}
else
{
while(!feof(file))
{
/*
if(fgets(line, 256, file))//fgets read up to num-1 characters from stream and stores them in line
{
printf("%s", line);
}
*/
if(fgets(line,256,file)!=NULL)
{
for(y = 0; y < columns; y++)
{
array[x][y]=strtok(fgets(line,256,file), " ");
}
x++;
}
}
}
fclose(file);
}