`
linleizi
  • 浏览: 226779 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

C++动态内存分配学习笔记六

 
阅读更多
C++动态内存分配学习笔记六
"操作符new和new[]
形式为:pointer = new type 或者 pointer = new type [elements]"
"动态内存分配通常是由操作系统控制,内存有可能被用光,这种情况如果发生,操作系统将不能在遇到new时分配所需内存,返回无效指针。因此建议使用new后座检查。
例如:
int * bobby;
bobby = new int [5];
if (bobby == NULL) {
// error assigning memory. Take measures.
}"
删除操作符delete
形式为:delete pointer 或 delete [] pointer
"函数malloc:给指针分配内存的通用函数,原型是:void * malloc (size_t nbytes);
nbytes是我们想要给指针分配的内存字节数。返回一个void*类型的指针,需要用类型转换处理。
例如:
char * ronny;
ronny = (char *) malloc (10);
这个例子将一个指向10个字节可用空间的指针赋给ronny。"
"函数calloc:原型:void * calloc (size_t nelements, size_t size);
这两个参数相乘被用来计算所需内存块的总长度。通常第一个参数(nelements)是元素的个数,第二个参数 (size) 被用来表示每个元素的长度。
例如:
int * bobby;
bobby = (int *) calloc (5, sizeof(int));
malloc 和calloc的另一点不同在于calloc 会将所有的元素初始化为0。"
"函数realloc:用来改变已经被分配给一个指针的内存的长度。原型:void * realloc (void * pointer,size_t size);
参数pointer 用来传递一个已经被分配内存的指针或一个空指针,而参数size 用来指明新的内存长度。"
"函数free:这个函数用来释放被前面malloc, calloc 或realloc所分配的内存块。原型:void free (void * pointer);
注意:这个函数只能被用来释放由函数malloc, calloc 和realloc所分配的空间。"
分享到:
评论

相关推荐

    C++学习笔记:关于C++类与动态内存分配中布局new操作符

    C++学习笔记:关于C++类与动态内存分配中布局new操作符

    C++学习笔记,高级教程部分(文件和流,内存分配,异常处理机制等)

    C++学习笔记---高级教程部分。博主自用。内容包含:文件和流,异常处理机制,动态内存,命名空间,模版(类模版,函数模版),预处理器,和信号处理机制。包含代码示例。

    C++学习笔记、常见面试知识点.zip

    C++学习笔记和常见面试知识点,C++11特性,包括多态、虚表、移动语义、友元函数、符号重载、完美转发、智能指针、const和static、数组指针和指针数组、struct内存对齐、enum和union关键字等等。帮助了解C++的特性,...

    mfc c++视频笔记

    c++学习,mfc视频 笔记 构造函数:类创建一个变量后,就要为其分配内存空间,该内存空间就是由构造函数来分配的;每个类都必须创建一个构造函数,没有的话,就不能创建对象,如果没有定义构造函数,编译器会默认提供...

    Java 虚拟机学习笔记:Java 内存区域,垃圾收集,内存分配与回收策略,JVM 调优,文件结构,类加载机制,Java 程序

    Java 虚拟机学习笔记: Java 内存区域, 垃圾收集, 内存分配与回收策略, JVM 调优, 文件结构, 类加载机制, Java 程序 Java是一种面向对象的编程语言,由Sun Microsystems于1995年推出。它是一种跨平台的语言,...

    LearningNote:C++和Linux学习笔记

    提高C++程序员的自我修养 from 剖析STL内存分配器 编译器优化之 Empty Base Class Optimization 走近 std::tuple,揭秘异质容器 走近vtpr、vtbl,揭秘动态多态 走近 name mangling,揭秘函数重载本质 多线程编程...

    c#学习笔记.txt

    c#学习笔记(1) 51099在线学习网发布 文章来源:网络收集 发布时间:2006-05-25 字体: [大 中 小] 51099在线学习网 http://www.51099.com 1, 结构(struct) 与 类(class) [attributes] [modifiers] struct ...

    c++基础教程,简洁扼要

    70 动态内存分配 Dynamic memory pointer = new type pointer = new type [elements] 第一个表达式用来给一个单元素的数据类型分配内存。第二个表达式用来给一个数组分配内存。 例如: int * bobby; bobby = new int...

    java基础笔记

    六、 String创建对象的内存分配图 12 七、 字符串中的一些方法及正则表达式 12 第五节 7月22日 14 一、 面向对象 14 二、 类 14 三、 创建对象 14 四、 实例和静态 15 五、 构造器 15 六、构造器转发 16 七、 静态块...

    Google《Android性能优化》学习笔记(下)

    1)Memory,GC,andPerformance众所周知,与C/C++需要通过手动编码来申请以及释放内存有所不同,Java拥有GC的机制。Android系统里面有一个GenerationalHeapMemory的模型,系统会根据内存中不同的内存数据类型分别执行...

    程序员面试刷题的书哪个好-CppNote:笔记

    程序员面试刷题的书哪个...内存中的栈和堆分配 2 面对对象基础 (务必熟悉底层机制原理) 面向对象理解 析构函数 构造函数 拷贝构造 多态 纯虚函数和虚函数 虚函数实现机制 虚函数表 访问限定符 public、private、prote

    asp.net知识库

    VS2005 ASP.NET本地化学习笔记&感受 在自定义Server Control中捆绑JS文件 Step by Step 深度解析Asp.Net2.0中的Callback机制 使用 Web 标准生成 ASP.NET 2.0 Web 站点 ASP.NET 2.0基于SQLSERVER 2005的aspnetdb.mdf...

Global site tag (gtag.js) - Google Analytics