【问题标题】:c++ Multidimensional array second row overwriting the first rowc++多维数组第二行覆盖第一行
【发布时间】:2018-02-19 15:28:05
【问题描述】:

我最初使用“for 循环”进行此操作,以便在多维数组的每个元素中都有用户输入值,但每次执行它时,数组的第二行都会覆盖第一行。

这是程序的简化版。

源代码:

输出:

为什么第二行会覆盖第一行?我已经在“for循环”中使用多列对此进行了测试,第二行中的每个元素都会覆盖第一行。(即使有多行,最后一行也会覆盖前面的行。)

我如何使它不会覆盖以前的行。

【问题讨论】:

  • 编译时启用所有警告并将其视为错误
  • 你初始化了ArrayA,但是ab没有被赋值。
  • 感谢回复,我该怎么做,我用的是 dev-c++ 5.11(这个回复是给 fjardon sry)
  • @AndrewTruckle lmao 你是对的,我用 [3][1] 替换了它并且它起作用了。谢谢(尝试在我的电脑中放置另一行)
  • 请不要发文字图片,发文字。

标签: c++ arrays multidimensional-array


【解决方案1】:

因为int a,b 中没有设置任何值,所以int ArrayA[a][b] 不会做你期望它做的任何事情。 给ab 一些值,比如int a=2, b=2 或其他东西,那么它会起作用。

【讨论】:

  • 如果一个有int a=2, b=2; int ArrayA[a][b];,那么它是无效的C++应用程序,由于没有遵循标准。数组索引必须是编译时常量 (constexpr)。尽管如此,由于编译器扩展,这些代码可能会被某些编译器接受。
猜你喜欢
  • 2013-03-03
  • 1970-01-01
  • 2015-09-19
  • 2021-09-12
  • 2015-03-14
  • 2012-03-31
  • 2019-07-07
  • 2012-04-03
  • 1970-01-01
相关资源
最近更新 更多