C中的内存分配方式:
1.静态存储区域:在程序开始之前就可以分配,且在程序运行过程中始终存在; 2.栈;存储单元在其上分配,单元外自动释放,多见内置 数据类型于此;
3.堆:动态分配,即程序运行时分配此部分内存.由用户分配且要负责释放.生存期由用户决定,不受范围限制;
stdlib.h提供malloc(),及其变种:calloc(),realloc(),free();
用法:Obj *obj = (Obj*)malloc(sizeof(Obj));
用户必须指定对角的长度,因为它是一块内存而不是一个对象,malloc()返回一个void*,
在C++中,不允许把一个void*赋予任何指针;
malloc()可能分配不到内存,此时返回0, 所以必须检杳返回指针以确定内存分配成功.
C++中内存分配方式:
new操作符在堆中为对象分配内存并调用构造函数,
a.有参数表的构造函数分配: Obj *fp = new Obj(1, 2);
b.没有参数表的构造函数分配:Obj *fp = new Obj;
分配成功与否由new内置检查;
delete用于删除new创建的对象,其先调用析构函数再释放内存,成对使用;
如果正在删除的对象指针是 0, 将不发生任何事情,在删除这后要立即把指针赋值为0以免删除2次;
分享到:
相关推荐
c++学习笔记/知识要点精华版
C++ 学习笔记C++ 学习笔记C++ 学习笔记C++ 学习笔记
c++学习笔记.pdf
C++学习笔记C++学习笔记C++学习笔记C++学习笔记C++学习笔记
C++学习笔记
【C++学习笔记】一份详细的学习笔记,让你轻松掌握C++编程!
C++学习笔记.docx
C++学习笔记: 以学习、思考、记录、分享为乐。
c++完美学习笔记c++完美学习笔记c++完美学习笔记c++完美学习笔记
C++ 学习笔记C++ 学习笔记C++ 学习笔记C++ 学习笔记002
C++学习笔记
第一章 C++编程基础C++中,初始化各种变量可以用括号(面向对象的风格)例如:array(这里指普通数组,而不是C++11中的array类型)和vector的
C++基础的学习笔记(其中的代码源件可私信留言) C++中的空头程序 使用C++书写hello world 学习变量 学习常量 标识符命名规则 数据类型 运算符 程序流程结构 数组 函数 指针 结构体
C++ 学习笔记C++ 学习笔记C++ 学习笔记C++ 学习笔记C++ 学习笔记003
C++ 学习笔记C++ 学习笔记C++ 学习笔记C++ 学习笔记C++ 学习笔记004
C++ 学习笔记C++ 学习笔记C++ 学习笔记C++ 学习笔记001
C++学习笔记经典(与C比较),是学习C++的好资料。
Visual C++学习笔记,切身学习体会和总结