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