#include <stdio.h>
void tryit (int * a){ printf("%d",a);}
void main(){ int *a; *a=3; tryit(a);
}这个程序编译后没有错误,但一运行就说什么内存不能读什么的,请问各位大虾这是怎么回事?
你程序目的是什么?要打印a的地址吗?
?他的书写有问题么?他的程序在我这能正常运行啊!
斑竹!是不是该让这小子禁言拉!
指针先指向确定的地址然后才能引用指针指向的变量。
那要是让你改怎么改?
int a=3;tryit(&a);orint b,*a=&b;*a=3;
你的是VC么?好象WIN TC 和TC都不用!在编译的时候会自动为地址a解决居住问题!
是吗?您那样*a指向的地址是不确定的,并不是自动为地址a解决居住问题,而是恰好这个地址是闲置的,让您正好可以运行成功而不使系统崩溃.标准C明确规定要先把指针指向确定的空间。