c语言内存分配
来源:互联网 发布:法学网络课程 编辑:程序博客网 时间:2024/05/25 19:57
《c语言深度剖析》中关于内存管理部分的测试,可以很好的加深理解。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char *pstr = NULL;
char *pstr2 = NULL;
pstr = (char *)malloc(36);
strcpy(pstr,"hello world");
free(pstr);
pstr2 = (char *)malloc(0);
if(NULL != pstr2)
printf("%p \r\n",pstr2);
/*
if(NULL != pstr)
strcpy(pstr,"abchdhh");
*/
return 0;
}
通过调试发现 free 之后,pstr 仍然保持不变,但是其指向的内存已经不是 "hello world".
free 只是切断了 pstr 和它所指向内存的关系,即释放了内存,这时如果再使用 pstr 匿名操作对应内存将会发生意想不到的结果。
还有申请 0 个字节,不会返回 NULL。
0 0
- C语言内存分配
- C语言内存分配
- c语言内存分配
- C语言-内存分配
- C语言内存分配
- C语言内存分配
- c语言内存分配
- C语言内存分配
- C 语言内存分配
- C语言内存分配
- C语言内存分配
- c语言内存分配
- c语言内存分配
- C语言内存分配
- c 语言内存分配
- C语言 内存分配
- C语言内存分配
- C语言内存分配
- bzoj1048 分割矩阵 记忆化搜索
- Week4-4Earley Parser
- 结构体对齐
- Android NDK学习之 一. Android NDK简介
- UIImageView的使用
- c语言内存分配
- 在Spring3中,配置DataSource的方法有6种。
- CentOS 7中没有ifconfig命令,而且不能发现eth0
- 趣味i**1/((i-1)**(i-1)) 发现
- 正则表达式判断用户昵称
- (as)Android SDK在线更新镜像服务器
- 二叉树的遍历(无头结点,C语言)——更新后
- 10个不错的编程等宽字体
- update实现多表的更新