fread удаляет другую ранее назначенную строку символов - PullRequest
0 голосов
/ 09 мая 2019

Я читаю в двоичном файле, используя fread, но в процессе этой операции другая строка символов заменяется на (ноль). Ниже приведена часть кода, которая, кажется, вызывает проблему. Весь код намного длиннее, и я подозреваю, что у меня проблемы с доступной памятью стека, но я не знаю, как это проверить.

char *foo;
foo   = argv[1];
double *array;

array= malloc(npts*sizeof(double));      //npts - number of points

FILE *fo = fopen(ofile, "r");
printf("String: %s\n",foo);
fread(&array,8,npts,fo);
printf("String: %s\n",foo);

В первом случае оператора print возвращается ранее присвоенное значение bar, а во втором возвращается значение (null).

Я ожидал, что оба оператора print вернут 'bar'.

1 Ответ

1 голос
/ 09 мая 2019

&array в fread(&array,8,npts,fo); неверно; это адрес указателя. Вы должны передать указатель: fread(array,8,npts,fo);.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...