设为首页 加入收藏

TOP

21.3.2 使用堆内存
2013-10-07 01:15:41 来源: 作者: 【 】 浏览:79
Tags:21.3.2 使用 内存

21.3.2  使用堆内存

堆实现了内存的动态申请,因此使用上比较灵活、方便。本小节将用一个动态的一维数组来说明堆的使用方法。

【示例21-9】 实现动态数组。

  1. int main()  
  2. {  
  3.     int size;  
  4.     cout << "请输入数组的维数: ";  
  5.     cin>>size;  
  6.     int *p =0;  
  7.     if (p%2==0)  
  8.         p=new int[size];                //用new在堆上申请size个int字节大小的
    //内存单元
     
  9.     else 
  10.         p=(int*)malloc(size*sizeof(int));   //用malloc()在堆上申请size个字节
    //的空间
     
  11.     for(int i=0; i<size; i++)  
  12.     {  
  13.         p[i] = i * 10;                      //以数组方式对每个内存存储单元进行初始化  
  14.     }  
  15.     for(int i=0; I < size; i++)  
  16.     {  
  17.     cout << "第" << i << "个数组元素:" ;  
  18.     cout <<  *p++ ;                     //以指针方式将内存存储单元中的值输出  
  19.     cout << "\n";   
  20.     }      
  21.     return 0;  
分析:该实例分别用new和malloc()两种方式实现了一个动态数组,该数组的大小在运行时根据使用者的输入来决定。因此只要堆空间允许,就可以在任何时候,申请任何大小的空间。在申请内存后,就可以像使用数组或指针那样来使用。示例中在赋值时使用了数组形式,输出时使用了指针形式。

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇21.3.3 释放堆内存 下一篇21.3.1 申请堆内存

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: