假设我有一个指针数组:
struct S {int x;};
S *arr[3] = {new S{1}, new S{2}, new S{3}};
我想使 gdb
取消引用并打印数组的每个元素。
打印一个元素很简单:
(gdb) p *arr[0]
$1 = {x = 1}
但我想以这种方式打印数组中的每个元素。
我尝试了 p arr
,但它输出的是指针,而不是它们指向的对象:
(gdb) p arr
$1 = {0x613c20, 0x613c40, 0x613c60}
最佳答案
我还没有找到比这更好的:
(gdb) set $i=0
(gdb) p *arr[$i++]
$102 = {x = 1}
(gdb)
$103 = {x = 2}
(gdb)
$104 = {x = 3}
(gdb)
也许它能帮上忙。
注意:只需按return
即可显示下一个值。
关于c++ - 如何取消引用和打印指针数组的每个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58464405/