为什么在用c ++中的[n] [n]声明之后我无法观察表达式[1] [1]?

Cha*_* Le 3 c++ eclipse gdb

我的代码:

#include <iostream>
using namespace std;
int main() {
    int n=5;
    int a[n][n];
    a[1][1]=5;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

尝试在第6行的eclipse中观察表达式[1] [1]时出现此错误:

无法执行MI命令:-data-evaluate-expression a [1] [1]来自调试器后端的错误消息:无法对不完整类型执行指针数学运算,尝试转换为已知类型或void*.

我猜它是从gdb返回的?但是,我不知道为什么我不能看到那个价值?是不是"一个"是一个正常的多维数组?

Bo *_*son 6

由于一些奇怪的原因,除非你做到这一点,否则这不是有效的C++

const int n = 5;
Run Code Online (Sandbox Code Playgroud)

否则,数组大小在运行时才正式未知.

  • "一些奇怪的原因"是变长数组不是C++的一部分. (4认同)
  • +1,虽然我不会考虑"奇怪"的原因. (3认同)
  • @avakar - 奇怪的是每个人都可以看到n总是为5.它在矩阵上方的行上是这样说的,并且n永远不会改变(在此代码中). (3认同)