看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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
nh60211as: 我試過沒問題,我猜是你印的方法有問題05/01 17:43
nh60211as: https://i.imgur.com/w2vOOI3.png05/01 17:43
LPH66: 我會想猜 = 3 那邊的程式碼因為未知原因設去 [0] 去了05/01 18:34
已知道原因了 因為我的Column預給的空間太小 導致後面的東西會存到前一Row的位置 謝謝大家 ※ 編輯: kingfsg7326 (180.217.20.33 臺灣), 05/01/2021 18:42:12
Lipraxde: 這種的不知道 AddressSanitizer 抓不抓的出來耶 05/01 23:04