当前位置: 技术问答>linux和unix
关于指针的地址重的问题,求教了。
来源: 互联网 发布时间:2016-04-01
本文导语: 我定义了个全局的结构体,成员里面有个指针数组,char *Parameter[4]; 我又定义了个全局的另外的指针数组char *chQKey[30]; 可是我发现,我改变chQKey的时候,结构体里的Parameter也变了, 用gdb调试了下,p &chQKey[0],发现...
我定义了个全局的结构体,成员里面有个指针数组,char *Parameter[4];
我又定义了个全局的另外的指针数组char *chQKey[30];
可是我发现,我改变chQKey的时候,结构体里的Parameter也变了,
用gdb调试了下,p &chQKey[0],发现结构体里面的指针数组地址是从0x8051224开始的
然后我又看了下Parameter的,发现这个地址是从0x8051280开始的,
也就是说,我定义了30个,因为连续的,所以&chQKey[24]开始就和结构体里的那个地址重了,所以,就出现了这个情况。
不是太明白~想问问这个怎么回事啊?
我又定义了个全局的另外的指针数组char *chQKey[30];
可是我发现,我改变chQKey的时候,结构体里的Parameter也变了,
用gdb调试了下,p &chQKey[0],发现结构体里面的指针数组地址是从0x8051224开始的
然后我又看了下Parameter的,发现这个地址是从0x8051280开始的,
也就是说,我定义了30个,因为连续的,所以&chQKey[24]开始就和结构体里的那个地址重了,所以,就出现了这个情况。
不是太明白~想问问这个怎么回事啊?
|
你定义了指针数组,有没有对数组的各个指针元素赋值啊?没赋值就使用?