教程中国
PHOTOSHOP CS9.0中文版 MAYA 8.5 FOR WINDOWS Corel Painter v9.0 Flash MX2004 中文版 Illustrator cs2 中文版
VC++6.0含sp6 中英文版 VB6.0 +sp6 简体中文版 Borland Delphi 7汉化版 MSDN for vb6.0中文版 Visual Studio 2005简体
教程中国下属 文件存储共享专家BIBIDU.COM 提供大型软件,教材,源码,电影,音乐,图书等下载 更多精品请点此进入
  您目前所在位置: 教程中国 >> 编程基地 >> C++ >> C++中堆内存的概念和操作方法入门 RSS订阅
C++中堆内存的概念和操作方法入门
教程(视频,书籍)下载:  ASP.NET AutoCAD 数据库 C# ASP java photoshop 网页设计 delphi 3dmax Flash C++ VB 张孝祥 实例   更多请进入BIBIDU搜索
IT搜索引擎   
堆内存(heap)是什么呢?

  我们知道在c/c++中定义的数组大小必需要事先定义好,他们通常是分配在静态内存空间或者是在栈内存空间内的,但是在实际工作中,我们有时候却需要动态的为数组分配大小,在这里c库中的malloc.h头文件中的malloc()&&函数就为您解决了问题,(bc或者是在老的标准中是alloc.h),它的&&函数原形是void* malloc(size_t size),在动态开辟的内存中,在使用完后我们要使用free()&&函数来释放动态开辟的内存空间!

  下面我们来看一个完整的例子!

 C++ 代码

//程序作者:管宁
//所有稿件均有版权,如要转载,请务必注明出处和作者

#include<iostream>
#include<malloc.h>

usingnamespacestd;
main()
{
 intarraysize;//元素个数
 int*array;//用于动态开辟数组的&&keyword=%D6%B8%D5%EB&Submit=+%CB%D1%CB%F7+">指针变量

 cin>>arraysize;
 array=(int*)malloc(arraysize*sizeof(int));//利用malloc在堆内存中开辟内存空间,它的大小是元素的个数乘以该数据类型的长度

 for(inti=0;i<arraysize;i++)
 {
  array[i]=i;
 }

 for(inti=0;i<arraysize;i++)
 {
  cout<<array[i]<<",";
 }
 cout<<endl;
 free(array);//利用free释放动态开辟的堆内存空间
 cin.get();
 cin.get();
}

  这里要特别注意个地方就是:

 C++ 代码
array=(int*)malloc(arraysize*sizeof(int));

  malloc()的&&函数原形本身是void* malloc(size_t size),由于动态分配的空间计算机并不知道是用来做什么的所以是无类型的,但你要把它用在动态的整形数组上的时候就要显式的转换成int*了!

来源:十度教育
作者:
关键字:C++中堆内存,概念,操作方法入门
发表日期:2006-6-25 0:55:35

网页显示有限 阅读全文请下载本文完整版WORD文档

上一篇:C++中结构体的的慨念和使用方法   下一篇:C/C++指针学习的两个经典实例


2008-10-16 6:43:57
本文的相类似文章
  • 谈超频的概念及方法
  • 远离:主板“防爆”概念急待普及
  • 基于成本的优化器 — 一般错误概念和问题
  • ORACLE回滚段的概念、用法和规划及问题解决
  • 关于 GUI、Window manager、Desktop、Interface 几个概念的问题
  • Linux/390系统中的逻辑卷管理器LVM的概念与实施
  • buffer cache深度分析:概念以及内存结构
  • 毛泽东思想:科学概念的形成和指导地位的确立
  • “文化全球化”概念的界定
  • 有组织环境犯罪:概念、规模和结构
  • 在学习中进步 在进步中成长 教程中国相随您的成长之路
    华腾联合科技股份有限公司版权所有
    广告联系:Rosibo@163.com