编辑2:如果不可能,我会将赏金奖励给证明它的答案(我的意思是提供一些可靠的消息来源支持它的声明)不可能)。
我们说我有一个指向数组的指针,例如:
int arr[3];
int *p = new int[3];
我可以看到arr
的所有元素,但只能看到p
的第一个元素。如何查看p
的所有3个元素?
我尝试了来自View Array contents in QtCreator和View Array contents in Qt Creator debugger的答案中的各种建议,但它们并不适用于我:
我认为这是因为我在CDB上,而其他两个问题是针对GDB的。是否有可能为CDB实现相同目标?
修改:我忘了提及,但p,3
也不起作用。
答案 0 :(得分:2)
添加到表达式评估器(菜单窗口 - >视图 - >本地和表达式)
(int(*)[3])p
在Qt Creator 3.2.1中工作正常基于Qt 5.3.2(GCC 4.9.2,64 bit),建于2016年5月10日17:53:15。
答案 1 :(得分:-1)
您可以使用*(p + 1)和*(p + 2)来访问另外两个元素。
修改强> @sashoalm你需要在下面这样做:
int *pindex[3];
for(int j=0; j< 3;j++){
pindex[j]= p+j;
}
然后,您将能够在调试器中看到所有的p。
希望这会有所帮助。
答案 2 :(得分:-2)
要查看* p:
的所有元素所以,你可以看到所有三个元素。