1,<stdlib.h> free() void free(void*ptr)
作用:释放ptr参数指向的内存空间,但并不改变指针的值
用法:free()与malloc()配对使用,free释放malloc申请的内存
#include<stdio.h>
#include<stdlib.h>
int main()
{
int p=(int)malloc(10*sizeof(int));//申请10个int类型空间,放在指针p中
if(p==NULL)
{
printf("分配内存失败“);
}
scanf(“%d ” ,p);
printf("%d ",*p);
free(p);
printf("%d ",*p);
return 0;
}
256 256 0
注意:p为NULL时不执行任何操作,free(p)多少次都可以;
p为非空时 free (p)两次会导致程序运行错误;此时应将p设为空指针(p=NULL)
2, arr1[]={“hello word”}
arr2[]={"hello word"} arr1!=arr2 //在栈中开辟两块不同区域
arr3="hello word"
arr4="hello word" arr3==arr4//hello word 字符串常量,在只读数据区,不可改变