我有一個奇怪的問題,與atoi(): 我有一個字符串(讓我們說str)這就像「aaaa 1111 \ 0」(我打印和檢查 - 它的確是它) 。 我試圖在str + 5上執行atoi,程序剛剛崩潰。我在前後添加了一行日誌,我可以看到前一行,但之後沒有任何記錄。所以問題出在這一行。 我也打印了str + 5,結果如預期的那樣,所以字符串也沒有錯。atoi()使程序崩潰
然後我嘗試創建一個大小爲5的char []數組,並複製了4個數字,並在末尾添加了null。 它仍然崩潰...
添加代碼:
int int_pin;
char buff[MAX_LEN + PIN_LEN + 1]; //MAX_LEN = 5, PIN_LEN = 4
//reading size of MAX_LEN + PIN_LEN from file to buff...
buff[MAX_LEN + PIN_LEN] = '\0';
int_pin = atoi(buff+MAX_LEN); //crashes
編輯:我也嘗試過的最簡單的代碼: char a[] = "1234";
int_pin = atoi(a);
它仍然崩潰。 你有什麼想法爲什麼一個簡單的atoi()調用使我的程序崩潰?
*「代碼勝於雄辯」 *您需要發佈的代碼示例演示了問題,而不是描述字的問題。 – 2013-04-28 16:56:54