美文网首页
[C++之旅] 6 内存的申请和释放

[C++之旅] 6 内存的申请和释放

作者: Onicc | 来源:发表于2018-11-24 23:05 被阅读0次

[C++之旅] 6 内存的申请和释放

申请内存的方式

  • C语言方式

申请内存使用函数void *malloc(size_t size);

释放内存使用函数void free(void *memblock);

  • C++方式

申请内存使用运算符new

释放内存使用运算符delete

注意的是,使用C语言申请内存需使用C语言方式释放内存。

申请释放一个内存

申请内存int *p = new int;

释放内存delete p;

申请释放一块内存

申请块内存int *p = new int[5];

释放块内存delete []p;

申请内存注意事项

  • 申请内存时不一定会申请成功,因此编写程序时需对这种情况进行处理。
int *p = new int[99999];
if(p == NULL)
{
    //内存分配失败
}
  • 释放内存后需将指针设为空指针。
int *p = new int[99999];
if(p == NULL)
{
    //内存分配失败
}
delet p;
p = NULL;

相关文章

  • [C++之旅] 6 内存的申请和释放

    [C++之旅] 6 内存的申请和释放 申请内存的方式 C语言方式 申请内存使用函数void *malloc(siz...

  • Python内存管理机制

    转载: Python内存管理机制 c/c++中:通过malloc和free进行内存的申请和释放 python/ja...

  • C++ 复杂结构体的内存管理

    说明 C++ 中使用 new 和 delete 进行内存的申请和释放,二者成对出现。使用 new 申请的内存在堆中...

  • Linux平台中调试C/C++内存泄漏方法

    由于 C 和 C++ 程序中完全由程序员自主申请和释放内存,稍不注意,就会在系统中导入内存错误。同时,内存错误往往...

  • 一篇文章彻底搞定所有GC面试问题

    众所周知,在C++,内存的管理是程序员的任务,包括对象的创建和回收(内存的申请和释放),而在java中,我们可以通...

  • 一篇文章彻底搞定所有GC面试问题

    众所周知,在C++,内存的管理是程序员的任务,包括对象的创建和回收(内存的申请和释放),而在java中,我们可以通...

  • Valgrind--Linux下检测内存泄漏

    由于C和C++程序中常常需要程序员自主申请和释放内存,在大型的、复杂的应用程序中就会常常出现内存错误。Valgri...

  • Memcached内存管理与删除机制

    内存碎片化 如果用C语言直接 malloc,free 来向操作系统申请和释放内存时, 在不断的申请和释放过程中,形...

  • Memcache的内存管理和删除机制

    1:内存的碎片化 如果c语言直接向系统malloc,free申请和释放内存时,在不断的申请和释放的过程中,形成了一...

  • Rust智能指针

    智能指针 在C/C++中,堆内存的申请和释放都由程序员自己管理,自C++11起,引入了智能指针来协助管理内存。对于...

网友评论

      本文标题:[C++之旅] 6 内存的申请和释放

      本文链接:https://www.haomeiwen.com/subject/tfduqqtx.html