2012-10-21 76 views
-6

比方說,我有一個數組:打印出界數組內容

string w[10]; 

,我有一種說法:

if(w.size() > 10) 
{ 
    // How would I print out the 11th character? 
    char a = w[11]; 
    cout << a << endl; 
} 

我怎麼會打印出11號人物?我試圖存儲到一個字符中,但它似乎沒有打印任何東西。

+1

使用不作任何意義.... –

+0

[它確實不](http://i0.kym-cdn.com/photos /images/newsfeed/000/218/530/wtf_is_this_shit_Very_Disturbing_Childrens_Book_RE_We_dont_say_ampquotGermanampquot_in_America-s400x297-59009.jpg?1324142033) – 2012-10-21 08:15:24

+0

你的主要問題是'string w [10]'是一個由10個字符串組成的數組,而不是**一個由10個字符。 – halex

回答

1

爲什麼要在數組邊界之外打印?打印超過數組大小的任何字符都未定義,並可能導致崩潰。

此外w [11]實際上是第12個元素。由於數組爲0,因此第11個元素爲w [10]。

你真的希望數組的大小做動態調整嗎?因爲如果你想使用一個字符串,也許你想要一個stl字符串?即在頭<string>定義並經由

std::string somestring("string you want");