憋废话_开码 2021-04-16 21:33 采纳率: 20%
浏览 56

数组指针问题。。。。。。。

目的是通过函数改变数组指针的指向进而在主函数输出改变后的值

#include<stdio.h>
int main()
{
	int a[3] = { 1,2,3 };
	int(*q)[3] = &a;
	int(**m)[3] = &q; 
	void fun(int(**)[3]);
	fun(&q);
	for (int i = 0; i < 3; i++)
		printf("%d ",(**m)[i]);
}
void fun(int (**p)[3])
{
	int b[3] = { 19,65,9 };
	*p = &b;
}

程序输出:19 -858993460 11

 

请问大家这是哪里出错了

  • 写回答

7条回答 默认 最新

  • 「已注销」 2021-04-16 21:46
    关注

    b的作用域只在fun的大括号里,函数结束后b就销毁了,里面都是垃圾信息

    评论

报告相同问题?