1. malloc函数

函数原型:void *malloc(unsigned int size)
函数的作用是:在内训的动态存储区开辟一个size个字节的连续空间,返回所分配区域的首字节地址。 
可以看到,函数返回值是一个void指针,请注意,void指针不是一个可以指向任何类型数据的指针,而是 说,不指向任何类型的数据,仅仅是提供了一个地址。
因而,你想让这个指针指向int型数据,要进行显式的类型转换(强制类型转换),即在前面加(int *)。一般来说,如果不加,是可以自动进行隐式类型转换的。

2. new函数

在C++中提供了运算符 new 和 delete 来取代 malloc 和 free 进行动态分配内存空间;

当我们使用关键字new在堆上动态创建一个对象时,它实际上做了三件事:获得一块内存空间、调用构造函数、返回正确的指针。

3. calloc函数

函数原型:void *calloc(unsigned n,unsigned size)
作用:开辟n个长度为size的连续空间。一般用来保存一个数组。

内存的三种分配方式:

1. 从静态存储区分配:此时的内存在程序编译的时候已经分配好,并且在程序的整个运行期间都存在。全局变量,static变量等在此存储。

2. 在栈区分配:相关代码执行时创建,执行结束时被自动释放。局部变量在此存储。栈内存分配运算内置于处理器的指令集中,效率高,但容量有限。

3. 在堆区分配:动态分配内存。用new/malloc时开辟,delete/free时释放。生存期由用户指定,灵活。但有内存泄露等问题。

CC++动态分配内存(手动分配内存)三种方式相关推荐

  1. React创建组件的三种方式及其区别

    React推出后,出于不同的原因先后出现三种定义react组件的方式,殊途同归:具体的三种方式: 函数式定义的无状态组件 es5原生方式React.createClass定义的组件 es6形式的ext ...

  2. java 多线程编程(包括创建线程的三种方式、线程的生命周期、线程的调度策略、线程同步、线程通信、线程池、死锁等)

    1 多线程的基础知识 1.1 单核CPU和多核CPU 单核CPU,其实是一种假的多线程,因为在一个时间单元内,也只能执行一个线程的任务.微观上这些程序是分时的交替运行,只不过是给人的感觉是同时运行,那 ...

  3. ios多线程开发的常用三种方式

    ios多线程开发的常用三种方式 1.NSThread 2.NSOperationQueue 3.GCD NSThread: 创建方式主要有两种: [NSThread detachNewThreadSe ...

  4. Docker的常用管理命令Docker将数据挂载到容器的三种方式

    文章目录 镜像管理命令 容器管理常用命令 docker run常用参数 Docker run的其他参数 docker 创建容器命令 容器资源限制 docker管理容器常用命令 docker将数据挂载到 ...

  5. android音频开发6,Android 音视频开发(一) : 通过三种方式绘制图片

    想要逐步入门音视频开发,就需要一步步的去学习整理,并积累.本文是音视频开发积累的第一篇. 对应的要学习的内容是:在 Android 平台绘制一张图片,使用至少 3 种不同的 API,ImageView ...

  6. Spring 容器:三种方式解决 Resource leak: ‘applicationContext‘ is never closed 问题

    文章目录 前言 一.Spring 容器警告的产生 1.1.项目场景 二.Spring 容器未关闭后果分析 2.1.肉眼可见的警告 2.2.导致的内存泄漏 2.2.1.什么是内存泄漏? 2.2.2.如何 ...

  7. 全站仪与计算机之间的数据传输,必看!全站仪数据传输的三种方式详解,都安排得明明白白(上)...

    原标题:必看!全站仪数据传输的三种方式详解,都安排得明明白白(上) 科力达全站仪数据传输 一般而言,全站仪的数据传输方式有三种,分别是通过串口.USB.SD卡三种方式,因为电脑配置等因素的不同,一些数 ...

  8. 用户可以使用三种方式使用计算机,计算机操作系统期末复习笔记

    学长学姐精心编纂的计算机操作系统笔记,欢迎大家学习复习~~ 第一章 1. OS作为用户与计算机硬件系统之间的接口: 含义是:OS处于用户和计算机硬件系统之间,用户通过OS来使用计算机系统. 用户可以通 ...

  9. 创建线程的三种方式、线程运行原理、常见方法、线程状态

    文章目录 1.创建线程的三种方式 1.1 继承Thread类并重写run方法 1.2 使用Runnable配合Thread 1.3 通过Callable和FutureTask创建线程 2.Runnab ...

  10. Java操作Excel三种方式POI、Hutool、EasyExcel

    Java操作Excel三种方式POI.Hutool.EasyExcel 1. Java操作Excel概述 1.1 Excel需求概述 1.2 Excel操作三种方式对比 2. ApachePOIExc ...

最新文章

  1. 【分析】2014移动互联网数据报告(终极版必收!)
  2. matlab randint函数
  3. CodeForces 213 E
  4. AI时代的神马搜索!神马智能对话技术深度解读
  5. Data Storage(数据存储)之内部储存(Internal Storage)
  6. cookie和session原理
  7. 李航-HMM-直接计算法
  8. 变量不同作用域的测试
  9. std::bind 详解及参数解析
  10. python 除法取模_跟我一起学python | 探究05
  11. vue-cli如何创建项目到计算机指定位置(如何自定义选择磁盘?)
  12. python中对文件的操作_Python对文件操作知识
  13. SQL BETWEEN
  14. oracle 多实例 端口,Oracle一个实例配置多个listener或多个端口
  15. 贵州大学计算机科学与技术学院排名,贵州大学的计算机专业全国排名第几?
  16. Kubernetes学习笔记 黑马程序员
  17. 手机ttl刷机linux,机顶盒刷机基础,TTL科普及简单介绍,TTL安装应用方法
  18. Android 程序清单详解
  19. MATLAB编程之PTB: 实验暂停
  20. 《西瓜书》学习笔记-目录

热门文章

  1. android开启前台服务_如何在PC端一次性开启Tasker的所有权限和服务
  2. mysql 怎么创建B Tree索引_MySQL为什么选择B+Tree做索引
  3. MATLAB 长度和像素_MATLAB——单车道NaSch模型
  4. android开发出现的错误,android 开发 错误集锦
  5. 这门国产语言终于要发布 1.0 版本了
  6. 在C 语言中,请一定记得初始化局部变量!
  7. 电气控制原理动图22张,超赞!
  8. oracle什么是swap分区,linux 安装oracle时swap空间不足
  9. c语言访问数据库 不用odbc,急问ODBC访问数据库问题
  10. 智慧政务解决方案(28页)pdf_智慧政务解决方案在政务服务大厅中的应用