#include<stdio.h>void real(int *pi);void main(){ int a[2],d; int *b;real(b); d=*b;printf("%d",d); system("pause");} void real (int *pi) { int a=100; pi=&a; }
错误原因,指针b没有赋予初值,b指向哪里了?他是一个野指针。
把它作为函数的实参传递给函数real是有问题。
是想写成这样吧
可以输出了,我想问一下 real函数执行完后 a不是被释放了吗? 为什么返回的还是100呢?
地址交还给了,但可以非法访问该空间。