标题:[求助]指针与指针的问题!
只看楼主
lucis009
Rank: 1
等 级:新手上路
帖 子:181
专家分:0
注 册:2007-5-2
 问题点数:0 回复次数:1 
[求助]指针与指针的问题!
.....
.....
int main()
{
int m[6];
int *q=m,i=0;
q=get(h);
for(i=0;i<3;i++)
printf("%d\n",*(p+i));/*为什么用循不只能正确显示*(p+0),而我不用循环一个一个就能正确显示?*/
return 0;
}
......
int *get(struct Addresslist *head)
{
int a[6],i=0;
int *p=a;

while(head)
{
a[i]=head->num;
head=head->next;
i++;
}
return p;

}
搜索更多相关主题的帖子: 指针 
2007-06-14 17:11
k_summer7
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-3-19
得分:0 
从代码上看是根本不会得到正确结果的;
这是因为,数组a在get函数内部定义,也就是在栈空间上定义,当函数调用完成后,该栈会销毁,栈空间上的内容会消失,也就是说指针q指向的是一段未知内容,也就是垃圾区域;
解决办法是,将数组a定义为static int型;或者参数列表中将数组m以指针的形式传递给函数get;
2007-06-14 19:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-147488-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.343211 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved