首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

,为什么这两句话的输出不一样

2012-03-07 
求救,为什么这两句话的输出不一样int length(PList plist){int i plist-sizereturn i}void main(){PL

求救,为什么这两句话的输出不一样
int length(PList plist){
  int i = plist->size;
  return i;
}  

  

void main(){
  PList dl = newList();
  printf("%d",dl->size); //这里输出0,预期得到的结果
  printf("%d",length(dl));//这里输出-858993460,比较奇怪 



其中newList()返回一个struct的指针 

  

感觉上那两句话是等效的 


[解决办法]
newList(); 返回的一个临时变量的地址,出现无法预期的结果很正常。
[解决办法]
newNode()
newList()
返回的都是局部变量的地址,函数执行完局部变量就被释放,
你再去读取,就会有问题了.

热点排行