博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
堆内存
阅读量:5350 次
发布时间:2019-06-15

本文共 721 字,大约阅读时间需要 2 分钟。

1、堆是内存空间。堆是区别于栈区、全局数据区和代码区的另一个内存区域。堆运行程序在运行时(而不是编译时),申请某个大小的内存空间。

2、获得堆内存

函数malloc()是C程序获得堆内存的一个方法,在alloc.h的头文件中声明。该函数从堆内存中"切下"一块size(运行时决定的)大小的内存,并将指向该内存的地址返回。

3、示例代码

#include
#include
int main(){int arraysize;//元素个数int *array;cout<<"please input a number of array elements:\n";cin>>arraysize;//下列代码是防止堆内存用光情况发生 if((array=(int*)malloc(arraysize * sizeof(int)))==NULL){cout<<"can't allocare more memory,terminating.\n";exit(1);} for(int count=0;count

 

 

4、new和delete

new和delete是C++专有的操作符,他们不用头文件声明。new类似于函数malloc(),分配堆内存,但比malloc()更简练。

new的操作数为数据类型,它可以带初始化值表或者单元个数。new返回一个具有操作数值数据类型的指针。

new和delete在性能略逊于函数malloc()和free(),但更安全并具有更丰富的功能。

转载于:https://www.cnblogs.com/FanPigPig/p/4686068.html

你可能感兴趣的文章
docker应用-3(搭建hadoop以及hbase集群)
查看>>
生成keystory文件
查看>>
ubuntu 网络配置
查看>>
char能表示(-128~127)
查看>>
Linux 性能监测:Memory
查看>>
正则化(尚未完成)
查看>>
DrRacket
查看>>
编程之美之中国象棋将帅问题
查看>>
PHP发送HEADER头消息
查看>>
文件上传
查看>>
entity framework 连接 oracle 发布后出现的问题(Unable to find the requested .Net Framework Data Provider)...
查看>>
Python多线程Selenium跨浏览器测试
查看>>
日期-date.js
查看>>
JavaSE02:第一个程序
查看>>
linux下安装jdk8
查看>>
ubuntu gcc 降级 适应matlab
查看>>
[转]Three things you should never put in your database
查看>>
执行makemigrations后错误集锦
查看>>
JDBC高级部分
查看>>
永中office2012 linux版 使用初步感受
查看>>