作者kingfsg7326 (认 同 请 按 2 )
看板C_and_CPP
标题[问题] struct array 错乱
时间Sat May 1 16:50:31 2021
开发平台(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://webptt.com/cn.aspx?n=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
1F:→ nh60211as: 我试过没问题,我猜是你印的方法有问题05/01 17:43
3F:推 LPH66: 我会想猜 = 3 那边的程式码因为未知原因设去 [0] 去了05/01 18:34
已知道原因了
因为我的Column预给的空间太小
导致後面的东西会存到前一Row的位置
谢谢大家
※ 编辑: kingfsg7326 (180.217.20.33 台湾), 05/01/2021 18:42:12
4F:→ Lipraxde: 这种的不知道 AddressSanitizer 抓不抓的出来耶 05/01 23:04