Я работаю над фрагментом кода, который считывает данные из файла и обрабатывает его. Идея состоит в том, чтобы загрузить данные глобально, а затем использовать несколько функций для данных для выполнения вычислений. Проблема, с которой я сталкиваюсь, заключается в том, что при компиляции я получаю следующую ошибку:Объявление переменной
«вершины» необъявленные (первое использование в этой функции).
Заголовочный файл содержит следующее:
typedef struct
{
double x;
double y;
double z;
} variable;
В основном я называю таНос и функцию, которая будет использовать этот массив «переменной» называемые «вершины»:
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, я потеряю все. Если я переопределяю typedef выше main, я получаю 'предыдущее определение было здесь', и если я добавлю переменные вершины; до main, получить ошибку.
Как решить такую проблему?
Какая строка дает ошибку? – Roddy
Почему вы назвали «переменную» типа? Это не имеет никакого смысла. – LtWorf
Вы уверены, что он не говорит '' вершины 'undeclared' в load_file ??? это, по крайней мере, имело бы смысл. – Roddy