2012-07-26 102 views
-1

我將每個向量元素分配給cstring?將向量元素分配給CStringArray

for(int i = 1; i <examplevector.size; i ++) 
    { 
    CStringArrayexample[i-1] = examplevector[i]; 
    } 

這裏只是一個崩潰。可能是什麼原因?

+0

這不應該崩潰,因爲它不應該編譯,除非你使用了一些隨機向量,其中'size'是一個公共數據成員。 – chris 2012-07-26 22:02:00

回答

1

CStringArray::operator[]不執行綁定檢查。崩潰最可能的原因是數組的大小比向量小。

另外,爲什麼你沒有任何變數?如果你這樣做,爲什麼你的變量命名與你使用的類型相同?

如果要將新元素添加到陣列,請使用Add

您的編輯後:

CStringArrayexample[i-1] = examplevector[i]; 

你知道,當i==0,你正在檢查的數組元素-1,對不對?

+0

我沒有規定的矢量不是CStringArray – crr 2012-07-26 22:01:57

+0

@crr好,那麼這就是你的問題。當你在向量中push_back時,它會自動增加大小。對數組使用'add'而不是'operator ='。 – 2012-07-26 22:03:17

+0

是的,我也嘗試做CStringArrayexample.add(examplevector [i]);它也崩潰。 – crr 2012-07-26 22:22:43