读书人

c++指针全局变量,该怎么解决

发布时间: 2013-01-22 10:23:54 作者: rapoo

c++指针全局变量
定义了2个全局变量,指针类型
char *Sessionstr = NULL;
char *fLastSessionId = NULL;
在还没分配空间,没指定到某一个地址的情况下,
调试时为什么会出现一个地址为0x00000000,一个为0x35542b4a,不是都应该为0x00000000吗?
c++指针全局变量,该怎么解决
[解决办法]
lz这是调试到了哪一步啊 是不是已经对fLastSessionId 重新复制了吧
[解决办法]
全局变量的内存是分配在静态数据区,具体位置不确定。
[解决办法]

引用:
全局变量的内存是分配在静态数据区,具体位置不确定。


rs
[解决办法]
引用:
找到问题了,另外一个指针越界了
2个毫不相干的指针,互相之间还能有影响
这问题太操蛋了

尚方宝剑,威力无穷
[解决办法]
c++程序员 对内存的掌控是基本功
[解决办法]
全局变量是被编译器放在全局/静态区的。
[解决办法]
把代码都贴出来啊。。。明明char *Sessionstr = NULL;
char *fLastSessionId = NULL;空的,楼主肯定什么地方搞错了。。。
[解决办法]
进入main之后呢?

比如
char *Sessionstr = NULL;
char *fLastSessionId = NULL;
int main
{
cout << (void*) Sessionstr;
cout << (void*) fLastSessionId;
}

可以在main设断点,然后step,看每一步指的变化情况。

[解决办法]
引用:
找到问题了,另外一个指针越界了
2个毫不相干的指针,互相之间还能有影响
这问题太操蛋了


只能说用的时候要小心。一个问题的本质未必是看到的现象,但肯定有原因。

读书人网 >C++

热点推荐