CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

SOS 一个指针问题....!

楼主slipper_cn()2005-04-03 13:48:49 在 C/C++ / C语言 提问

代码如下  
  #include   <stdio.h>  
  #include   <stdlib.h>  
   
  int   *   c()  
  {  
  return   (int   *)malloc(sizeof(int));  
  }  
   
  void   da(int   *temp)  
  {  
  free(temp);  
  temp=NULL;  
  }  
   
   
  int   main()  
  {  
  int   *h;  
  h=c();  
  da(h);  
  if(h==NULL)  
  {  
  h=c();  
  printf("ssssss\n");  
  }  
  printf("eeeeeee\n");  
  getchar();  
  return   0;  
  }  
  运行输出老是eeeeee,怎样才能输出sssss,就是怎么样才能让一个指针在另一个函数中被重新赋值呀  
   
  谢谢 问题点数:20、回复次数:6Top

1 楼hoter(hoter)回复于 2005-04-03 13:58:45 得分 0

调用da(h);后h的地址并没有改变的。在函数da中虽然temp   =   NULL;但是它只改变行参temp的值,并没有改变实参h的值.  
  如果把temp   =   NULL改为*temp   =   0;则调用da(h)后*h也是等于0。但是h的地址值始终没有改变。只是指向它的内容改变了。  
  Top

2 楼kobefly(科比--网络学习中)回复于 2005-04-03 14:03:33 得分 5

void   da(int   *&temp)  
  {  
  free(temp);  
  temp=NULL;  
  }Top

3 楼dongyuanzhang(阿林)回复于 2005-04-03 14:05:43 得分 5

void   da(int   **temp)  
  {  
  free(*temp);  
  *temp=NULL;  
  }  
   
  Top

4 楼szws(克米帅)回复于 2005-04-03 15:03:24 得分 5

其实这个和  
  void   swap(int   a,int   b)  
  {  
  int   temp;  
  a=b;  
  b=temp;  
  temp=a;  
  }  
  的错误差不多(不能实现a,b值的互换),不能传值,  
  加个引用就可以了  
  void   da(int   *&temp)  
  {  
  free(temp);  
  temp=NULL;  
  }  
  Top

5 楼cqulzg(love_cpp)回复于 2005-04-03 15:21:07 得分 5

采用引用和传址都可以Top

6 楼zhousqy(标准C匪徒)(甩拉,甩拉)回复于 2005-04-03 15:49:37 得分 0

void   da(int   **temp)  
  {  
  free(*temp);  
  *temp=NULL;  
  }  
  =====  
  up,用指针的指针或指针的引用。Top

相关问题

  • 指针!!!!
  • this指针
  • 指针?
  • 指针
  • 指针
  • 指针!
  • this指针
  • 指针??
  • 指针
  • 指针?

关键词

  • 指针
  • null
  • temp
  • da
  • 值
  • 改变
  • free

得分解答快速导航

  • 帖主:slipper_cn
  • kobefly
  • dongyuanzhang
  • szws
  • cqulzg

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo