21.3.2 使用堆内存
堆实现了内存的动态申请,因此使用上比较灵活、方便。本小节将用一个动态的一维数组来说明堆的使用方法。
【示例21-9】 实现动态数组。
- int main()
- {
- int size;
- cout << "请输入数组的维数: ";
- cin>>size;
- int *p =0;
- if (p%2==0)
- p=new int[size];
- else
- p=(int*)malloc(size*sizeof(int));
- for(int i=0; i<size; i++)
- {
- p[i] = i * 10;
- }
- for(int i=0; I < size; i++)
- {
- cout << "第" << i << "个数组元素:" ;
- cout << *p++ ;
- cout << "\n";
- }
- return 0;
- }
分析:该实例分别用new和malloc()两种方式实现了一个动态数组,该数组的大小在运行时根据使用者的输入来决定。因此只要堆空间允许,就可以在任何时候,申请任何大小的空间。在申请内存后,就可以像使用数组或指针那样来使用。示例中在赋值时使用了数组形式,输出时使用了指针形式。
【责任编辑:
云霞 TEL:(010)68476606】