当前位置:  技术问答>linux和unix

两次去变量的地址不一样是为什么?

    来源: 互联网  发布时间:2017-05-11

    本文导语:  c_data_event_node  event_processing_head; c_data_event_node  event_finished_head; ------------------------------------------------ fprintf( stderr , "n--------processing_head :%x n" , &event_processing_head ); fprintf( stderr ,    "--------processed_head  :%x n" ...

c_data_event_node  event_processing_head;
c_data_event_node  event_finished_head;

------------------------------------------------

fprintf( stderr , "n--------processing_head :%x n" , &event_processing_head );
fprintf( stderr ,    "--------processed_head  :%x n" , &event_finished_head );



上面的部分是变量声明,下面的是调试的时候用于数据的语句。
下面的语句在两次数据中的值不一样。
有没有人碰到过这种问题呀?
求救!

|
估计楼主想说,一样的程序,运行一次,打印一个地址,再运行一次,地址就变了。

这个可能是正常的。但是如果运行一次程序,打印一次,一个地址,再打印一次,地址就变了,那就不正常了。

|
这两个变量是栈里面的,程序栈的初始地址是由操作系统装载程序时决定的。

如果变量是全局变量,则它们的地址是在程序被编译链接时决定的,与何时运行无关。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。














站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,