當我嘗試通過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