Так что мне нужно написать функцию, которая читает все элементы внутри битового файла.Дело в том, что я не знаю, сколько элементов может быть внутри, но я знаю, что это за элементы.Поэтому я попытался написать эту функцию:
void loadData(Parallelogram **array) {
FILE *data; long size;
//int numberOfElements = 0;
int numberOfObjects = 0;
if ((data = fopen(name, "rb"))!=NULL) {
fseek(data, 0, SEEK_END);
size = ftell(data);
fseek(data, 0, SEEK_SET);
if (size<(long)sizeof(Parallelogram)) {
printf("The file is empty try to open another file maybe");
} else {
Parallelogram *tempArray;
numberOfObjects = size/sizeof(Parallelogram);
tempArray = realloc(*array, numberOfObjects*sizeof(Parallelogram));
if (tempArray==NULL) {
printf("There was an error reallocating memory");
} else { *array = tempArray; }
fread(*array, sizeof(Parallelogram), numberOfObjects, data);
}
}
fclose(data);
}
Элементы являются объектами структуры типа Parallelogram, хранящими несколько чисел с плавающей запятой.Закомментированная часть была мной, пробующим другой метод из другого вопроса, но не понимающий реальный механизм.В любом случае, когда я вызываю функцию, массив пуст.В чем я ошибаюсь?
РЕДАКТИРОВАТЬ: По запросу это основная функция, где я вызываю функцию loadData ()
int main() {
Parallelogram *paraArray = NULL;
loadData(¶Array);
}