我做了一個關於把輸入到字符指針的測試案例。當我嘗試運行這個程序時,輸出是不正確的(它變成了一系列隨機字符,如:_ @ $)。我打算在該字符指針中打印每個元素。 我對代碼進行了一些更改,但仍然是錯誤的(和以前一樣)。 有人能幫我弄清楚出了什麼問題以及解決問題的方法嗎?閱讀輸入,並把它放到字符指針
int chara;
int counts =0;
main(){
char *buffer=(char *)malloc(sizeof(char)*25);
while((chara=getchar())!= EOF&& counts<25){
*buffer++ = chara;
printf("%c\n",*buffer);
counts++;
}
*buffer = '\0';
printf("%s\n",buffer);
free(buffer);
}
'sizeof(20)== 4'。這不是你想要的。 – SLaks
'sizeof(20)'不會做你所想的。如果你想分配20個字節,你需要'malloc(20)'。另外,請具體說明。說「輸出不正確」使其很難提供幫助。 – lurker
你應該添加一些東西到你的循環中,當你得到所有的緩衝區中的一個字節時,停止它。你擁有的那個將永遠運行,覆蓋緩衝區之後的任何內容(很可能)。 –