为了节约内存,作者曾一度疯狂,希望能够使数组在运行时Uers指定长度创建数组。发现在C++中 vector 模块类 可以解决这个问题。再使用过 vector 模块类 后,我开始发现原来 vector 其实是使用C++指针的new运算符建立的,于是拿起《C++ Primer Plus》开始啃其原理。
使用指针动态创建数组,总结如下:
- 创建
格式:
typeName * pName = new typeName [size]
第一个typeName
是储存地址的指针的类型,第二个typeName
是数组的类型,最后这里的size可以是变量,意味着可以在运行阶段创建动态的数组,而不再是在编译阶段确定的常量(内存福音~)
- 使用
直接像数组那样通过下标访问元素,栗子:
int * book = new int [num];
for(int i=0;i!=num;i++)
{
cin>>book[i];
}
- 释放内存
切记切记!
用完指针必释放内存,否则内存可能崩溃!(就如你借书了不换,后面借书的人自然借到的书越来越少)
delete [] book;
栗子:
#include <iostream>
using namespace std;
int main()
{
int num;
cout<<"How many?"<<endl;
cin>>num;
int * book = new int [num];
for(int i=0;i!=num;i++)
{
cin>>book[i];
}
delete [] book;
system("pause");
return 0;
}
Now,enjoy your code!