[問題] struct array 存值錯亂

作者: kingfsg7326   2021-05-01 16:50:31
開發平台(Platform): (Ex: Win10, Linux, ...)
linux
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
g++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question): 創立struct array後存值會錯亂
餵入的資料(Input):
創立
struct value{ vector<int> variable};
接著在main中建立
struct value goat[ROW=3][COLUMN=5];
現在在迴圈中給ROW=0值
for(int i=0;i<5;i++)
for(int z=0;z<3;z++)
goat[0][i].variable.push_back(1);
接著又有迴圈寫入ROW=1值
for(int i=0;i<5;i++)
for(int z=0;z<3;z++)
goat[1][i].variable.push_back(0);
接著假設讓ROW=1每個項目的variable中的某個值手動改成3
ex: goat[1][2].variable[2]=3;
預期的正確結果(Expected Output):
如果印出來應該是ROW=0所有的值都是1
ROW=1 會有3與0(不會有1)
錯誤結果(Wrong Output):結果印出來後會發現ROW=0中的variable會出現3這個東西
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
因為需要在工作站上輸入檔案 較為複雜故先不貼code(感謝體諒)
補充說明(Supplement):
不知道是不是c++環境錯亂了?
還是我語法上有什麼不對嗎
跪求大神協助
作者: nh60211as   2021-05-01 17:43:00
我試過沒問題,我猜是你印的方法有問題https://i.imgur.com/w2vOOI3.png
作者: LPH66 (-6.2598534e+18f)   2021-05-01 18:34:00
我會想猜 = 3 那邊的程式碼因為未知原因設去 [0] 去了
作者: Lipraxde (Lipraxde)   2021-05-01 23:04:00
這種的不知道 AddressSanitizer 抓不抓的出來耶

Links booklink

Contact Us: admin [ a t ] ucptt.com