C语言 return 数组首指针,打印数组的值

我的结果为什么不正确?

你的代码返回了一个非静态局部地址,arrg在quintmouwei函数结束后就不存在了,arrq数组所占用的地址被释放,随时可能被改写,所以操作这个返回的地址是不可靠的
你把arrq定义成静态的就可以了
static int arrq[4]; // 这样定义,函数结束后,这块地址仍然有效
或者用动态方法
int* arrq=(int*)malloc(sizeof(int)*4); //动态分配内存,注意要头文件malloc.h
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-12-24
因为arrq是quintmowei中的数组,当函数运行完毕后,便不能保存其中的数值,所以即便你用指针指向的地址是正确的,但其中的内容并不一定正确。
所以,需要在main函数中声明一个数组,并将这个数组的指针作为参数传递过去才是正解。
亦或 将arrq声明为static类型的数组。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网