在下面的代码生成兼容的指针类型错误和警告:控制到达在文件名函数非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