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