早教吧作业答案频道 -->其他-->
一个C指针问题#include#defineN10int*fun(inta[N],intn){intb[N];returnb;}main(){intw[N],*p;p=fun(w,n);}这个程序把b当函数反回值,指针P指向B数组首地址,但结果P却变成了无向指针,我不明
题目详情
一个C指针问题#include #define N 10 int *fun (int a[N],int n) { int b [N]; return b; } main () { int w[N],*p; p=fun (w,n); } 这个程序把b当函数反回值,指针P指向B数组首地址,但结果P却变成了无向指针, 我不明白的是,在P指向FUN之前,B以经反回给了FUN了,P指向FUN应该是没错的,为什么P成了无向指针了?
▼优质解答
答案和解析
这里牵扯到了一个局部变量的问题, 楼主看你的fun函数,b只是一个局部数组,它的生存区间是在fun函数中,当fun函数返回时,也就是意味着fun函数结束了,那么此时它的局部变量还存在么 b本来(指fun函数结束之前)的内存已经被释放掉了,你说p现在指向了哪儿了?? 你可以在b声明的时候加上个static修饰符就不会出现这个问题了
看了 一个C指针问题#includ...的网友还看了以下:
归并算法的C++题目,半个小时内回答给50分!!!急求!!!根据下面将两个有序表合并为一个有序表的 2020-07-10 …
编写函数intmymod(inta,intb)用以求a被b除之后的余数.怎么出错#includei 2020-07-23 …
matlab里f=inline('sin(x)./x')中,那个点.为什么不加在括号里,第二个x后 2020-07-24 …
请问在matlab里这样定义函数对吗?fun=inline('beta(1)+beta(2).*l 2020-07-24 …
.若有数组“inta[10]={1,2,3,4,5,6,7,8,9};”,则数值最大和最小元素的下 2020-07-29 …
对于二维数组inta[3][3]={1,2,3,4,5,6,7,8,9},(1)求最大值,最小值( 2020-08-02 …
java编写九宫图代码,如果里行列都越界怎么处理数组inta=newint[3][3],采用这种方法 2020-11-02 …
5.对于二维数组inta[7][8],若数组a的首地址为1000,且每个元素的长度是4个字节,则采用 2020-11-07 …
数组元素的符号地址是怎么命名的,如数组inta[5]中一个元素a[3]的符号地址是a+3,二维的数组 2020-11-18 …
从键盘输入n个无序的整数,编写函数posnegSort(inta[]),实现将所有的正数排在所有的负 2020-12-05 …