在 C + + C++ C++中无法使用变量作为数组长度,必须使用常量
因此,想要使用变量声明数组长度,可以选择将数组空间开辟在堆内存中,对于不能确定需要占用多少内存的情况,动态内存分配 解决了这个问题:
使用 n e w new new 和 d e l e t e delete delete:
int *a =new int[n]; //new一个数组a
memset(a,0,n*sizeof(int)) //初始化
//...
delete[] a; //删除
a=NULL;
这样这块内存就是自己开辟的了,可以使用变量初始化数组的长度,内存空间会在运行时动态分配
最后要注意的是:
- 使用完这个 n e w new new 的数组后要 d e l e t e delete delete 掉,防止内存泄漏
- 让指针 a a a 指向 N U L L NULL NULL,防止其仍指向某片内存空间