Я создаю функцию для чтения чисел из файла в массив. Но похоже, что после возврата из функции последнее значение теряется. Вот мой код:
void loadDataset(int* dataSet, int DataSetSize, char *filename) {
FILE *fp;
fp = fopen( filename , "r" );
for(int i=0; i< DataSetSize; i++){
fscanf(fp, "%d", &dataSet[sizeof(int) * i]);
}
for (int i = 0; i < DataSetSize; i++) {
printf("%d\n", dataSet[sizeof(int) * i]);
}
fclose(fp);
}
int main(int argc, char *argv[]) {
...
int* ds = malloc(sizeof(int) * DataSetSize);
loadDataset(ds, DataSetSize, DatasetFilename);
for (int i = 0; i < DataSetSize; i++) {
printf("%d\n", ds[sizeof(int) * i]);
}
...
}
Файл, с которым я тестирую, содержит числа от 1 до 6. В функции loadDataset
результат печати равен
1
2
3
4
5
6
Но при возвратев функции main
выводится результат:
1
2
3
4
5
0
В чем может быть проблема?
Извините, если это что-то тривиальное, я пропускаю, но я не очень знаком с программированием на C.