日期:2014-05-16  浏览次数:20638 次

两次去变量的地址不一样是为什么?
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 );



上面的部分是变量声明,下面的是调试的时候用于数据的语句。
下面的语句在两次数据中的值不一样。
有没有人碰到过这种问题呀?
求救!
------解决方案--------------------
估计楼主想说,一样的程序,运行一次,打印一个地址,再运行一次,地址就变了。

这个可能是正常的。但是如果运行一次程序,打印一次,一个地址,再打印一次,地址就变了,那就不正常了。
------解决方案--------------------
这两个变量是栈里面的,程序栈的初始地址是由操作系统装载程序时决定的。

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