[問題] struct array 存值錯亂

看板C_and_CPP (C/C++)作者 (認 同 請 按 2 )時間4年前 (2021/05/01 16:50), 4年前編輯推噓1(103)
留言4則, 3人參與, 4年前最新討論串1/1
開發平台(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++環境錯亂了? 還是我語法上有什麼不對嗎 跪求大神協助 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.218.40.13 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1619859034.A.2A2.html ※ 編輯: kingfsg7326 (61.218.40.13 臺灣), 05/01/2021 16:50:51 ※ 編輯: kingfsg7326 (61.218.40.13 臺灣), 05/01/2021 16:53:37 ※ 編輯: kingfsg7326 (61.218.40.13 臺灣), 05/01/2021 16:53:51 ※ 編輯: kingfsg7326 (61.218.40.13 臺灣), 05/01/2021 16:56:53

05/01 17:43, 4年前 , 1F
我試過沒問題,我猜是你印的方法有問題
05/01 17:43, 1F

05/01 17:43, 4年前 , 2F

05/01 18:34, 4年前 , 3F
我會想猜 = 3 那邊的程式碼因為未知原因設去 [0] 去了
05/01 18:34, 3F
已知道原因了 因為我的Column預給的空間太小 導致後面的東西會存到前一Row的位置 謝謝大家 ※ 編輯: kingfsg7326 (180.217.20.33 臺灣), 05/01/2021 18:42:12

05/01 23:04, 4年前 , 4F
這種的不知道 AddressSanitizer 抓不抓的出來耶
05/01 23:04, 4F
文章代碼(AID): #1WZHPQAY (C_and_CPP)
文章代碼(AID): #1WZHPQAY (C_and_CPP)