当前位置: 技术问答>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 );
上面的部分是变量声明,下面的是调试的时候用于数据的语句。
下面的语句在两次数据中的值不一样。
有没有人碰到过这种问题呀?
求救!
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.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。