学了几年C语言,到现在才明白这一点,惭愧!
int* p;
int a;
p=&a; //分配地址空间
或
#define LEN sizeof(int)
void main()
{
int* p;
p=(int*)malloc(LEN); //分配地址空间
*p=1;
printf("%d",*p);
}
如果是这样,就错了:
int*p;
*p=1;
printf("%d",*p); //没有分配地址空间,p的值不确定,程序执行时可能出现异常
学了几年C语言,到现在才明白这一点,惭愧!
int* p;
int a;
p=&a; //分配地址空间
或
#define LEN sizeof(int)
void main()
{
int* p;
p=(int*)malloc(LEN); //分配地址空间
*p=1;
printf("%d",*p);
}
如果是这样,就错了:
int*p;
*p=1;
printf("%d",*p); //没有分配地址空间,p的值不确定,程序执行时可能出现异常