2016-01-15 2 views
-1

Я пытаюсь сделать что-то очень простое в C, которое должно обрабатывать и возвращать символ, и вернуть возвращаемое значение этой функции в качестве «полезного» символа в другой функции.Возврат строки, отличной от NULL, вызывает ошибку компиляции

char name_the_file(char *fileName) { 
    if (fileName == NULL) { 
     fileName = "myFile"; 
    } 
    globalFile = fileName; 
    return fileName; 
} 

FILE *load_File(char *fileName) { 
    fileName = name_the_file(fileName); 
    FILE *filePointer; 
    filePointer = open_file(fileName); 
    return fopen(fileName, "r"); 
} 

Я продолжаю получать диагностическую: warning: assignment makes pointer from integer without a cast [enabled by default], и я не понимаю, что это неправильно, что я делаю. Я не могу переопределить fileName?

+1

полукокса * необходимое и у вас есть символ для определения функции. –

+1

Вы возвращаете пройденный указатель как char. –

+0

Существует также 'globalFile' undeclared ... – joaumg

ответ

6

Вы возвращаете char *, а не char. Ваш код, кажется, на самом деле требует name_the_file вернуть char *, так изменить прототип:

char *name_the_file(char *fileName) 
+0

Спасибо! Я не знал, что вы можете вернуть указатель – unicornication

Смежные вопросы