指针动态初始化:
int *p = (int*)malloc(sizeof(int)*3);//初始化为指向3个元素的数组
if(!p) exit -1;//这个地方一定要进行判断,因为若动态初始化不成功,在使用p[0]、p[1]、p[2]时报错。
指针的销毁:
free(p);
p = NULL;//避免p为野指针,需要赋值为NULL
//p中的值仍为原先的内存地址,此时要进行赋值NULL。
//释放内存后,赋值为NULL的好处还有:当p为NULL时,即便再free n次也不会出错!!!
注意:free的含义:free之后,是将由malloc分配的内存交还给系统支配,而代码支配不了了,即由malloc分配的内存中内容由系统进行处理。
其中存在两个值:一个是指针的值,指针的值并未发生改变,还是原先指向malloc分配的地址。
另一个是malloc分配的内存值,这其中的值取决于系统有没有使用该内存,如果使用了,该内存中的值会发生改变,如果没有使用,则还是保持原先的值。