CC++动态分配内存(手动分配内存)三种方式
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++动态分配内存(手动分配内存)三种方式相关推荐
- React创建组件的三种方式及其区别
React推出后,出于不同的原因先后出现三种定义react组件的方式,殊途同归:具体的三种方式: 函数式定义的无状态组件 es5原生方式React.createClass定义的组件 es6形式的ext ...
- java 多线程编程(包括创建线程的三种方式、线程的生命周期、线程的调度策略、线程同步、线程通信、线程池、死锁等)
1 多线程的基础知识 1.1 单核CPU和多核CPU 单核CPU,其实是一种假的多线程,因为在一个时间单元内,也只能执行一个线程的任务.微观上这些程序是分时的交替运行,只不过是给人的感觉是同时运行,那 ...
- ios多线程开发的常用三种方式
ios多线程开发的常用三种方式 1.NSThread 2.NSOperationQueue 3.GCD NSThread: 创建方式主要有两种: [NSThread detachNewThreadSe ...
- Docker的常用管理命令Docker将数据挂载到容器的三种方式
文章目录 镜像管理命令 容器管理常用命令 docker run常用参数 Docker run的其他参数 docker 创建容器命令 容器资源限制 docker管理容器常用命令 docker将数据挂载到 ...
- android音频开发6,Android 音视频开发(一) : 通过三种方式绘制图片
想要逐步入门音视频开发,就需要一步步的去学习整理,并积累.本文是音视频开发积累的第一篇. 对应的要学习的内容是:在 Android 平台绘制一张图片,使用至少 3 种不同的 API,ImageView ...
- Spring 容器:三种方式解决 Resource leak: ‘applicationContext‘ is never closed 问题
文章目录 前言 一.Spring 容器警告的产生 1.1.项目场景 二.Spring 容器未关闭后果分析 2.1.肉眼可见的警告 2.2.导致的内存泄漏 2.2.1.什么是内存泄漏? 2.2.2.如何 ...
- 全站仪与计算机之间的数据传输,必看!全站仪数据传输的三种方式详解,都安排得明明白白(上)...
原标题:必看!全站仪数据传输的三种方式详解,都安排得明明白白(上) 科力达全站仪数据传输 一般而言,全站仪的数据传输方式有三种,分别是通过串口.USB.SD卡三种方式,因为电脑配置等因素的不同,一些数 ...
- 用户可以使用三种方式使用计算机,计算机操作系统期末复习笔记
学长学姐精心编纂的计算机操作系统笔记,欢迎大家学习复习~~ 第一章 1. OS作为用户与计算机硬件系统之间的接口: 含义是:OS处于用户和计算机硬件系统之间,用户通过OS来使用计算机系统. 用户可以通 ...
- 创建线程的三种方式、线程运行原理、常见方法、线程状态
文章目录 1.创建线程的三种方式 1.1 继承Thread类并重写run方法 1.2 使用Runnable配合Thread 1.3 通过Callable和FutureTask创建线程 2.Runnab ...
- Java操作Excel三种方式POI、Hutool、EasyExcel
Java操作Excel三种方式POI.Hutool.EasyExcel 1. Java操作Excel概述 1.1 Excel需求概述 1.2 Excel操作三种方式对比 2. ApachePOIExc ...
最新文章
- 【分析】2014移动互联网数据报告(终极版必收!)
- matlab randint函数
- CodeForces 213 E
- AI时代的神马搜索!神马智能对话技术深度解读
- Data Storage(数据存储)之内部储存(Internal Storage)
- cookie和session原理
- 李航-HMM-直接计算法
- 变量不同作用域的测试
- std::bind 详解及参数解析
- python 除法取模_跟我一起学python | 探究05
- vue-cli如何创建项目到计算机指定位置(如何自定义选择磁盘?)
- python中对文件的操作_Python对文件操作知识
- SQL BETWEEN
- oracle 多实例 端口,Oracle一个实例配置多个listener或多个端口
- 贵州大学计算机科学与技术学院排名,贵州大学的计算机专业全国排名第几?
- Kubernetes学习笔记 黑马程序员
- 手机ttl刷机linux,机顶盒刷机基础,TTL科普及简单介绍,TTL安装应用方法
- Android 程序清单详解
- MATLAB编程之PTB: 实验暂停
- 《西瓜书》学习笔记-目录
热门文章
- android开启前台服务_如何在PC端一次性开启Tasker的所有权限和服务
- mysql 怎么创建B Tree索引_MySQL为什么选择B+Tree做索引
- MATLAB 长度和像素_MATLAB——单车道NaSch模型
- android开发出现的错误,android 开发 错误集锦
- 这门国产语言终于要发布 1.0 版本了
- 在C 语言中,请一定记得初始化局部变量!
- 电气控制原理动图22张,超赞!
- oracle什么是swap分区,linux 安装oracle时swap空间不足
- c语言访问数据库 不用odbc,急问ODBC访问数据库问题
- 智慧政务解决方案(28页)pdf_智慧政务解决方案在政务服务大厅中的应用