在下面的代碼生成兼容的指針類型錯誤和警告:控制到達在文件名函數非void函數的結束:警告:從兼容的指針類型用C返回
#include <stdio.h>
#include <stdlib.h>
int quit;
char *filename(int *);
int main()
{
filename(&quit);
return 0;
}
char *filename(int *i1)
{
char input[16];
char *dum=(char*)malloc(16*sizeof(char));
if (dum==NULL){
printf("Memory could not be allocated \n");
}
else {
printf("Memory was allocated – remember to free\n \n");
*i1=1;
fputs("Input filename = ", stdout);
fflush(stdout);
fgets(input,sizeof(input),stdin);
printf("Filename = \"%s\"\n",input);
return i1;
}
}
我的新本,有人可以幫我解決這個錯誤嗎?
您的'main'函數在不使用返回值的情況下調用'filename',爲什麼函數需要返回任何東西? – Barmar
其實,問題應該是:爲什麼'main'不使用返回值?你打印「記得要自由」,但是永遠不要釋放它。 – Barmar