Posted on 2007-06-20 19:39
MiweiDev 閱讀(1130)
評論(11) 編輯 收藏 引用 所屬分類:
C / C++Language
回溫C語言,發(fā)現(xiàn)這個關(guān)于內(nèi)存的問題,請大家?guī)兔忉寏~
#include <iostream>
using namespace std;

int main()
{
char strArray[5] = "";
cout << "請輸入一個字符串(不要超過5個):" << endl;
gets(strArray);
puts(strArray);

return 0;
}
我定義的數(shù)組長度的5,strArray[5]是字符串類型的,本來只能存儲4個字符加上一個'\0',但是當我輸入的字符個數(shù)多于9個(包含9)的時候,才有提示錯誤出現(xiàn),當然我知道是數(shù)組的越界那部分的內(nèi)存不可讀,但是為什么我輸入從5到9之間的時候卻不報錯呢?
隨后我又把數(shù)組的大小調(diào)整到 15 , 但是此時輸入 17 個字符時才報錯,
然后我又改變了數(shù)組的大小變?yōu)?0, 然后又實驗 結(jié)果我輸入13 個時才開始報錯!
誰能幫我解釋原因?
有關(guān)于這方面的書籍嗎?幫忙推薦幾本!THANKS!