C++与c内存相关
来源:互联网 发布:squareframe美图软件 编辑:程序博客网 时间:2024/05/29 04:46
malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。因此C++语言需要一个能完成动态内存分配和初始化工作的运算符new,以及一个能完成清理与释放内存工作的运算符delete。
如果用free释放“new创建的动态对象”,那么该对象因无法执行析构函数而可能导致程序出错。如果用delete释放“malloc申请的动态内存”,理论上讲程序不会出错,但是该程序的可读性很差。所以new/delete必须配对使用,malloc/free也一样。
注意new/delete不是库函数。
内存耗尽的处理
1.判断指针是否为NULL,如果是则马上用return语句终止本函数
2.判断指针是否为NULL,如果是则马上用exit(1)终止整个程序的运行
3.为new和malloc设置异常处理函数。例如Visual C++可以用_set_new_hander函数为new设置用户自己定义的异常处理函数,
也可以让malloc享用与new相同的异常处理函数
- C++与c内存相关
- C/C++与内存相关的函数
- 内存相关(C/C++)基础知识
- C语言内存相关
- C 指针作为参数与动态分配内存相关问题
- C++内存相关
- linux c 内存相关函数
- 常用C函数----内存相关
- C程序内存相关知识点
- C语言内存模型相关
- C内存管理相关函数
- 几个内存相关面试题(c/c++)
- 几个内存相关面试题(c/c++)
- C与内存
- c与内存
- C指针与内存
- C学习之------内存相关操作(1)
- C学习之------内存相关操作(2)
- Java Socket 通信中传递Object对象注意的问题
- 简单算法题
- HashMap的存储实现
- luence教材1
- hdu 4417 Super Mario 树状数组+离线操作
- C++与c内存相关
- Windows7(64位)安装Oracle10g
- 状态机编程之我见
- 详解UML中的关系(泛化、实现、依赖、关联【聚合、组合】)
- android的广播介绍,在manifest .xml中注册广播
- 《C Traps and Pitfalls》(C陷阱与缺陷)
- C# Socket编程笔记
- Codeforces Round #142 (Div. 2)
- 母函数模板