Возвратите указатель из функции C

Можно найти в домашняя страница исследования Google некоторые указатели о научно-исследовательских работах записанный некоторыми парнями Google. Необходимо запустить с explanatio , файловая система Google и эти отображает/уменьшает алгоритм , чтобы попытаться понять то, что продолжается позади страниц Google.

6
задан KJ0090 11 December 2009 в 21:51
поделиться

3 ответа

В первой строке у вас есть

int open_text_file(char text_file_name[])

Это объявляет возвращаемый тип как int У вас должно быть

FILE * open_text_file(char text_file_name[])

. Кроме того, в случае "else" вы должны вернуть что-то, чтобы указать ошибка вызывающего абонента.

return NULL

является подходящим выбором. Однако не забудьте проверить возвращаемое значение при его вызове.

11
ответ дан 8 December 2019 в 13:46
поделиться

Функция немного бессмысленна, поскольку все, что она делает, - это то, что делает fopen (), плюс сообщение об ошибке. Это не очень хорошая конструкция, поскольку ветвь ошибки также должна возвращать указатель (предположительно NULL), который затем необходимо снова протестировать в вызывающем коде. Лучше было бы просто сказать:

FILE * fp = fopen( somefile, "r" );
if ( fp == NULL ) {
   fprintf( stderr, "Cannot open %s\n", somefile );
   exit(1);   // or whatever you need to do to handle the error
}
6
ответ дан 8 December 2019 в 13:46
поделиться

FILE * open_text_file (); должен быть прототипом.

int не является FILE * .

]
0
ответ дан 8 December 2019 в 13:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: