的這是一個恥辱,我無法弄清楚這些基本的東西對C++的,但C風格的字符串作爲我不會期望。例如,我創造這樣的: char* cstr = new char[1];
單個字符C風格串滿垃圾
它初始化爲:Íýýýýý««««««««它。正常情況下,我可以設置第一個字符,因爲其他字符不是真正存在的(或者我認爲它們不是)。在工作時使用白色c風格的字符串,所有這些垃圾都可以使用,並且一切正常。
現在我是混合性的std :: string白衣的C-stlye一個和我所得到的是一個爛攤子。惠特此代碼:
std::string str = "aaa";
str += cstr;
我結束了白衣:aaaÍýýýýý««««««««它,但現在這些字符實際存在的string.size()返回長度,包括這個垃圾。
我找不到爲什麼會發生這種情況,但它必須連接whit字符串創建,因爲類似char * cstr =「aaa」會導致aaa沒有任何額外的垃圾,但嘗試更改字符串初始化這種方式結果在內存訪問衝突。有人能解釋我這種行爲嗎?謝謝!
PS:我的JavaScript無法加載,所以如果有人能正確地格式化這個職位,我會很高興!
答:哦,上帝!我怎麼能忘記這一點......感謝所有人,好吧,立即回答。最好的一個來自minitech,所以我將這個標記作爲答案,只要我的Java腳本加載:/