我正在Ubuntu上使用Qt。当我进行调试时,只能在Locals和Watchers中看到数组的第一个值。如何查看所有数组内容?
struct node
{
int *keys;
void **pointers;
int num_keys;
struct node *parent;
int is_leaf;
struct node *nextLevelNode;
};
它只在调试窗口中显示第一个键值。
我正在Ubuntu上使用Qt。当我进行调试时,只能在Locals和Watchers中看到数组的第一个值。如何查看所有数组内容?
struct node
{
int *keys;
void **pointers;
int num_keys;
struct node *parent;
int is_leaf;
struct node *nextLevelNode;
};
它只在调试窗口中显示第一个键值。
(int[10])(*myArray)
代替(int[10])myArray
或者,使用*myArray@10
代替myArray@10
int *keys;
声明。int
的指针。因此,它无法知道您希望它显示多少个值。int array1[5];
array1[0] = 2;
array1[1] = 4;
array1[2] = 6;
array1[3] = 8;
array1[4] = 10;
int* array2 = new int[5];
array2[0] = 20;
array2[1] = 21;
array2[2] = 22;
array2[3] = 23;
array2[4] = 24;
顺便提一下:当然,为了避免内存泄漏,上述代码之后应该跟着这个:
delete[] array2;
只需右键单击变量,选择更改值显示格式
并勾选100项的数组
。
有时候当前最受欢迎的答案无法显示二维数组。但是有一个解决方法。首先,将二维数组声明为一维数组,如下:
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;
(int[3][4]) *array2D
添加到表达式计算器中。不幸的是,您必须自行索引数组,但是您可以编写特殊用途的内联函数或使用另一种封装方法使其稍微更清晰些。