对于下面伪代码:
1.1
int *p,a=3;
p=&a;
1.2
int *p;
*p=3;
对于1.1编译时正确
对于1.2编译时会出现错误,那是因为即便你定义了指针p,但并未给它分配内存空间,这就类似于声明,只是告诉系统我这个指针是干什么用、什么类型的而已。
针对1.2解决方法:
int *p=(int *)malloc(sizeof(int));
*p=3;
现在再去编译还有个问题,那就是进行malloc函数时需要在最开始加上预处理语句#include<stdlib.h>,这样再次进行编译就可以了。
2.对指针的赋值
最初赋值
int *P=NULL;
指针用完后须加上free§;//释放指针所占的内存空间。
对于指针与malloc函数关系的研究,以及指针的赋值。
最新推荐文章于 2024-02-03 23:14:12 发布