这个函数哪里有错误?请教各位高手。

4inSky 2003-11-07 12:28:11

int * GetInt(char *str)
{
int *value;
*value =0;
return &value;//这一行有错误,但我不知道为什么
}
...全文
61 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
alphafeng 2003-11-07
  • 打赏
  • 举报
回复
支持!!!!
Wolf0403 2003-11-07
  • 打赏
  • 举报
回复
int * GetInt(char * str){
int myInt = * str;
int * value = & myInt; // int * -->> int **,应该出错
* value = 0;
return value;
}
wangjiashun 2003-11-07
  • 打赏
  • 举报
回复
不能返回局部变量的地址
ZheX 2003-11-07
  • 打赏
  • 举报
回复
再怎么改,到最后也是显示*value=0的时候的地址,当中觉得都是多余的
ZheX 2003-11-07
  • 打赏
  • 举报
回复
直接 int* value; *value=*str; 不就好了吗,为什么还要多加个myint
bing_huo 2003-11-07
  • 打赏
  • 举报
回复
return value;
Muzhu 2003-11-07
  • 打赏
  • 举报
回复
那是不是这样?
int * GetInt(char * str){
int myInt = * str;
int * value = & myInt;
* value = 0;
return value;
}
cyj2008 2003-11-07
  • 打赏
  • 举报
回复
Zark(金陵五月) 说的也没错!!
cyj2008 2003-11-07
  • 打赏
  • 举报
回复
定义指针时并没有对它进行初始化,所以指针value所指的地址为一个不可预测的地址值,
*value=0语句的执行结果将会使内存中value指针所指内存单元的值发生改变,造成破坏本程序甚至是其他程序的数据(有时候甚至会破坏代码段中的数据),影响程序的正常执行.(当然一般情况下不会发生这种情况)
thmoftherain 2003-11-07
  • 打赏
  • 举报
回复
完全正确 Good
Zark 2003-11-07
  • 打赏
  • 举报
回复
因为value的类型是int*,所以&value得到的类型应该是int**,而你的要求的返回值类型是int*,从而导致了类型不匹配.

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧