十一、堆内存、
来源:互联网 发布:windows api串口编程 编辑:程序博客网 时间:2024/05/16 01:21
C++ 编程基础教程
作者:TeliuTe 来源:基础教程网
十一、堆内存、 返回目录
堆内存可以动态分配所需的内存空间大小,而数组必须要在程序运行前指定空间大小,下面我们来看一个练习;
1、启动 Geany
1)点菜单“应用程序-编程-Geany”启动 Geany ,新建一个 c++ 源程序;
2)点菜单“文件-另存为”命令,以“heap”为文件名,保存文件到自己的文件夹;
2、分配堆内存
1)使用 new 操作符来获得需要的内存大小,它返回指定类型的内存空间指针,
接着输入下面的代码,准备要用到的变量,第三个是指针变量,存放将来内存地址:
int i = 0;int a = 0;
int *score = NULL;
2)接下来输入一个数给 a,指定要申请的内存空间大小;
cout << "Input a number: ";cin >> a;
3)接下来按整型 int 申请内存大小,如果成功了,就把地址给 score 指针变量,否则给它的是“空” NULL;
score = new int [a];
4)如果 score 不为空,就给它的各个单元赋值 i ,内存一般是连续的,可以当数组来使用;
for (int i=0; i<a; i++){
score[i] = i;
}
5)赋值完毕以后,再显示一下各个单元的值;
cout << "score[" << a << "] = ";for (int i=0; i<a; i++)
{
cout << score[i] << " ";
}
6)使用完毕后,归还申请的内存,释放内存后,score 指针也应该让指向空 NULL;
free(score);score = NULL;
7)编译、生成、运行后,显示分配的内存单元和值;
#include <iostream>
using namespace std;
int main(int argc, char** argv)
{
int a = 0;
int *score = NULL;
cout << "Input a number: ";
cin >> a;
score = new int [a];
if (score != NULL)
{
for (int i=0; i<a; i++)
{
score[i] = i;
}
cout << "score[" << a << "] = ";
for (int i=0; i<a; i++)
{
cout << score[i] << " ";
}
delete[] score;
score = NULL;
}
return 0;
}
本节学习了堆内存使用的基本操作,如果你成功地完成了练习,请继续学习;
- 十一、堆内存、
- 堆内存
- 堆内存
- 堆(内存)栈(内存)
- 栈内存 堆内存
- 栈内存、堆内存
- 栈内存 堆内存
- 堆内存 栈内存
- 栈内存、堆内存
- jvm堆内存和非堆内存
- 堆内内存还是堆外内存?
- 堆内存和堆外内存
- Java虚拟机--分析Java堆(十一)
- 术语----堆(内存),栈(内存)
- 栈内存和堆内存
- 栈内存和堆内存
- 栈内存与堆内存
- 堆内存和栈内存
- 让笔记本成为无线路由器!
- Ubuntu下实时查看网络流量
- hive查询异常:Cannot create directory /tmp/hive-root/。。。Name node is in safe mode.
- Flash OBJECT和EMBED标签详解
- 55. 略谈Lotus Notes的与众不同及系列文章至此的总结
- 十一、堆内存、
- 在busybox的基础上移植必要的工具
- Hdu 1166 敌兵布阵
- 超过定义的宽度就会加省略号
- DownLoadManager下载状态和进度的监听
- Could not find acceptable representation
- C++设计模式
- Go --- InterFace
- OLE DB 源