c语言中的free(对应malloc)或delete(对应c++中的new)来释放
例:
char *pt1,*pt2;
pt1=(char *)malloc(100);
pt2=pt1;
free(pt1);
pt1=NULL;
return 0;
第一行定义两个字符指针,但没有赋初值,编译器只给pt1、pt2个分配两个字节的存储空间来存储字符指针(指针也是一种变量,近程指针占两个字节),其中的数值不清楚,即是pt1、pt2指向那里是不可预知的
第二行用malloc函数为动态申请一个连续空间,并将这个快连续空间的首地址赋给pt1,pt1指向动态申请的内存块
第三行将pt1的内容pt2,两者同时指向动态申请的内存快
第四行释放pt1所指向的内存空间,显然将pt2所指向的空间也释放了,因为他们指向同一空间,但是指针变量所存储的数据不变,即pt1/pt2仍然指向原来的空间
第五行后,pt1=‘/0',但是pt2还是指向malloc申请空间的首地址,虽然那块空间已经被释放掉了