猿问

求助求助 为什么在fun1里面输出和传回来的输出不一样

#include<stdio.h> int fun1(int *p) { int i; int b[3]={0}; int *m=NULL; for(i=0;i<3;i++) { b[i]=(*(p+3*i)+*(p+3*i+1)+*(p+3*i+2))/3; } m=b; for(i=0;i<3;i++) { printf("%d ",*(m+i)); } printf("\n"); return m; } int main() { int *p=NULL; int b[3]={0}; int i; int *n=NULL; int a[3][3]={1,2,3, 4,5,6, 7,8,9}; p=a; n=fun1(p); for(i=0;i<3;i++) { printf("%d ",*(n+i)); } printf("\n"); } 输出是 2 5 8 2 3 1
早睡身体好0
浏览 925回答 1
1回答

望远

调用结束后数组b就被销毁了。
随时随地看视频慕课网APP
我要回答