int width = 3;
int height = 4;
int* array2D = new int [width*height];
int x,y;
for(x=width-1;x>-1;x--)
for(y=height-1;y>-1;y--)
array2D[x*height + y] = -1; // mark a breakpoint here!
// add to expression evaluator: (int[3][4]) *array2D
delete [] array2D;
5条答案
按热度按时间mbzjlibv1#
在表达式计算器中,尝试
(int[10])(*myArray)
而不是(int[10])myArray
或者,使用
*myArray@10
代替myArray@10
hgb9j2n62#
它只显示调试窗口中的第一个键值
我假设您指的是指针键,用
int *keys;
声明调试器不知道这是一个数组:它只知道这是一个指向
int
的指针。所以它不知道你想让它显示多少个值。我发现,在Ubuntu上使用Qt Creator 2.1.0调试器,下面的代码允许我看到所有5个值:
而对于此代码,调试器仅显示第一个值,与您所描述的完全相同。
旁白:当然,上面的代码后面会跟着这个,以避免内存泄漏:
稍后:这篇Qt开发者网络论坛的帖子说,你可以告诉调试器将指针显示为数组:
在Locals and Watchers中,在指针条目的上下文菜单中,选择“Watch Expression”。这将在下面创建一个新的被监视的表达式。
在那里,双击“名称”列中的条目,并添加“@10”以显示10个条目。
这听起来像它应该让你去。
h7appiyu3#
右键单击变量,选择
Change Value Display Format
并选中Array of 100 items
。3j86kqsm4#
在Qt for Mac中,对我有效的是:
1.为所需变量添加表达式计算器(在调试器窗口中右键单击该变量,然后单击“在此处为“var name”添加表达式计算器”)
1.数组变量最初显示为单个值。只需将“var”更改为“var[start...end],数组值就会出现。
cvxl0en25#
currently top voted answer有时无法显示二维数组。有一个解决方案。首先,像这样将二维数组声明为一维数组:
然后将
(int[3][4]) *array2D
添加到表达式求值器中。不幸的是,您必须自己索引数组,但您可以编写一个特殊用途的内联函数或使用其他封装方法使其稍微更清晰。