当我尝试通过malloc
'main
'的d字符指针在user_input
中使用以获取字符串时。 while循环完成后,我试图打印filename
。当它应该包含一个有效的字符串时,filename
结束为空。将Malloc字符指针传递给函数
void user_input(char *filename){
char ch;
int i = 0;
printf("Fil att leta i: ");
while((ch = getchar()) == '\n'){
filename = realloc(filename, (i+1) * sizeof(char));
filename[i] = ch;
i++;
}
filename[i] = '\0';
printf("filnamn = %s", filename);
}
int main(void){
char *filename;
filename = (char *)malloc(sizeof(char));
user_input(filename);
return 0;
}
你知道,sizeof(char)被定义为1.绝对没有理由问一个'char'是否多于一个'char'大。 – Deduplicator 2014-10-19 19:14:44