2009-12-01 58 views
21

的内容是否可以看到一个动态分配的数组的内容,如在:Eclipse的C++ - 调试:看到阵列

int *array = new int[dimension]; 

我只看到指针的值。

编辑:刚发现选项“显示为数组”,但我总是需要手动输入数组的大小。是否有可能实现自动化?

回答

35

在Eclipse中,看到一个动态分配的数组(为别人跨越这个问题绊倒)的内容,

  1. 确保您在调试的角度。寻找“变量”窗口。如果你没有看到它,点击“窗口”>“显示视图”>“变量”。
  2. 阵列上右击变量
  3. 点击显示为阵列
  4. Eclipse不知道你的阵列有多大,所以一开始的索引,而动态分配的长度元素的个数0类型。

choose display as array in eclipse

3

刚刚找到“显示为数组”的选项,但我总是需要手动输入数组的大小。是否有可能实现自动化?

这很好。我会坚持下去。在C或C++中一般情况下不可能自动获取数组,但尽管在一些微不足道的情况下它可以完成(但可能还不是 - 功能需要在它们存在之前执行,以便解释Raymond Chen)。

8

如果你想避免重复办“显示为阵”,打开“表达式”选项卡,并添加表达(*[email protected])。不知道为什么括号是必要的。没有他们,你会得到一个错误。

5

在“表达式”选项卡中,如果执行cleong注释并键入(*[email protected]),则还可以动态设置要显示的数组大小。当你需要另一个表达式来获得它时,这甚至可以工作。

所以假设你有一个变量x包含你的数组大小,你输入(*[email protected]),它会使用x的内容作为一个维度。

“X”,也可以是一些类似结构的内容或指针引用和类似 - 即

(*[email protected]>x) 

的作品就好了。