C 内存管理
来源:互联网 发布:淘宝质检报告怎么弄 编辑:程序博客网 时间:2024/06/11 00:56
静态区、栈、堆(堆栈 == 栈 != 堆)
静态区:保存全局变量和static变量,在整个程序的生命周期内部都存在,在编译的时候就已经被分配
栈:保存局部变量,栈上的内容只在函数的局部范围内存在,函数运行结束的时候,便自动被销毁,效率高,但是空间有限
堆:由malloc系列函数或new操作符分配的内存,到运行free和delete时结束,使用灵活、空间大,但是易出错常见的内存错误
- 指针没有指向一块合法的内存
解决方法:用malloc申请一块内存 - 为指针分配内存太小
注意malloc()里面的表达 - 内存分配成功,但未初始化
用memset()给内存初始化,一般为0 - 内存越界
- 内存泄漏
内存泄漏来源是堆上的内存,由malloc系列函数或new分配的内存,用完之后没有用free或delete进行释放 - 内存已经释放,但是继续用通过指针来使用
- 指针没有指向一块合法的内存
一般使用的过程
初始化指针(置NULL eg:char* p = NULL;)
分配内存(malloc(size), 应注意内存大小)
初始化(memset())
释放指针(free()或delete)
指针重新置NULL
0 0
- C/C++ 内存管理
- C内存管理函数
- C内存管理
- C内存管理
- object c 内存管理
- C 内存管理详解
- C 内存管理
- C语言内存管理
- c/c++内存管理
- c 的内存管理
- C内存管理
- Ojbective-c 内存管理
- C内存管理
- objective-c内存管理
- Objective-c 内存管理
- Objective-C内存管理~~
- c,c++内存管理
- Objective-C内存管理
- 入职链家前自己给自己做的一个竞品分析
- error C1083: 无法打开包括文件: "stdafx.h": No such file or director
- oracle学习入门系列之五内存结构、数据库结构、进程
- REDIS与MYSQL实现标签的对比
- ios 弹出用户提示框
- C 内存管理
- MFC中句柄HANDLE的理解
- 客户端数据存储 WebStorage 二
- 开发过程中用到的相关知识汇总
- android之Listview的分组实现
- Java自定义注解入门
- UITableView中heightForRowAtIndexPath 产生 EXC_BAD_ACCESS 的原因
- Andoird(五) 布局初步(下)
- String转xml以及Node resultCode=root.selectSingleNode("/ROOT/RET_DATA/RET_CODE");