我正在讀取輸入內容並將其放入指針中。我用的malloc所以我不知道自己做錯了什麼打印指針信息時出現分段錯誤(核心轉儲)
CODE:
#define BUFFER 30 //in my .h file
char *inStr;
inStr = malloc(sizeof(char*)*BUFFER);
scanw("%s", &inStr);
inStr[strlen(inStr)] = '\0';
mvwprintw(stdscr, 0, 0, "%s",inStr);
我試圖將其輸出到ncurses的董事會和我不知道爲什麼會這樣。
malloc(sizeof(char)*BUFFER)
什麼是「緩衝區」?它的內容是什麼?你怎麼知道'malloc()'成功了?什麼被放入'inStr'?爲什麼寫'inStr [strlen(inStr)] ='\ 0';' – John3136 2015-02-11 23:27:06
'sizeof(char *)'?什麼是「緩衝器」? – 2015-02-11 23:27:18
你malloc的東西,沒事。你確定* char *'不應該是'char'?第四行似乎完全沒用,因爲'scanw'應該爲你終止這個字符串(你認爲'strlen'如果*沒有*,它會工作嗎?)。而這:'scanw(「%s」,&inStr);'應該'scanw(「%s」,inStr);' – WhozCraig 2015-02-11 23:29:59