在 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;
这样这块内存就是自己开辟的了,可以使用变量初始化数组的长度,内存空间会在运行时动态分配文章来源:https://www.toymoban.com/news/detail-467292.html
最后要注意的是:文章来源地址https://www.toymoban.com/news/detail-467292.html
- 使用完这个 n e w new new 的数组后要 d e l e t e delete delete 掉,防止内存泄漏
- 让指针 a a a 指向 N U L L NULL NULL,防止其仍指向某片内存空间
到了这里,关于C++中变量作为数组长度的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!