我正在编写一段代码,它从文件中读取数据并对其进行操作。这个想法是以全局方式加载数据,然后对数据使用几个函数来执行计算。我遇到的问题是编译时出现以下错误:
'vertices' 未声明(在此函数中首次使用)。
头文件包含以下内容:
typedef struct
{
double x;
double y;
double z;
} variable;
我主要调用 malloc 和一个函数,它将使用这个名为“顶点”的“变量”数组:
int main (void)
{
variable *vertices = (variable*) malloc( 5000 * sizeof (variable) ) ;
load_file();
free(vertices);
return 0;
}
函数load_file():
FILE *fp1 ;
fp1 = fopen( 'file',"r");
if (fp1==NULL)
{
printf("File couldn't be opened or read!");
return 1;
}
int j = 0;
while(fscanf(fp1, "%lf %lf %lf ", &vertices[j].x, &vertices[j].y, &vertices[j].z ) == 3 )
{
j++;
}
fclose(fp1);
实际上,当我将 malloc 放入load_file时,它会编译并工作,但问题是我有各种其他函数将使用数据,如果我在 load_file 中释放它,我会失去一切。如果我在 main 上面重新定义 typedef,我会得到一个“以前的定义在这里”,如果我添加变量顶点;在 main 之前,有很多错误。
我将如何解决这样的问题?