[请教]如何在GDB中显示指针指向的数据

如程序中有
int *j=0;
j=20;
在GDB调试时可以用:
p j来显示j的地址,可是怎样才能显示出
j的内容?
谢谢!

p *j

但是你这个程序通常会crash喔。:slight_smile:

谢谢。
不但在调试时程序crash,而且单独运行程序时也被crash了!这样只能在IDE中才能看*j的内容?
另外,在例子程序中常常可以看到使用了各种指针而且也未进行初始化,可是在自己编写的程序中如果使用了指针而未初始化的话,就会有memeory fault的错误出现。因为一般初始化指针都是使用malloc()函数,在程序结束时用free()给它释放,但有时又会出现问题(可能下一次循环中又要使用此指针)。现在我总是对指针初始化而未free(),这样会不会导致什么问题?

非常抱歉提出如此低级的问题,但是以前都是使用TC的编译器,它与QCC对指针的处理可能不一样。比如我在TC程序中这样初始化不会出错,可在QCC中就会出错:
char *str=NULL;
或者:
char *str="";
在TC中编译和运行都正确,可在QCC编译后未出现错误,而运行时则出现memory fault的错误.

这个没有错啊。把一个指针置为NULL没有问题的。问题是后面引用它的时候。
如果 *str=‘a’,那就出错了。