C++使用变量作为数组长度
2017-06-13 15:17
1331 查看
C++中一般是不能使用变量作为一个数组的长度的,必须使用常量。
这是因为数组作为C++的内置数据类型,其空间分配在栈内存中,这部分空间的大小在编译时就要确定,不能等到运行时再分配。常量的值在编译时就能得到,而变量的值在运行时才能确定。
但是仍然有办法使用变量作为数组的长度:绕过栈内存,将数组空间开辟在堆空间内:
这样这块内存就是自己开辟的了,可以使用变量初始化数组的长度,内存空间会在运行时动态分配。
注意:
使用完这个数组后要delete掉,防止内存泄漏。
如果可能的话,使用STL容器替代内置的数组类型,能得到更好的性能和撸代码体验。
这是因为数组作为C++的内置数据类型,其空间分配在栈内存中,这部分空间的大小在编译时就要确定,不能等到运行时再分配。常量的值在编译时就能得到,而变量的值在运行时才能确定。
但是仍然有办法使用变量作为数组的长度:绕过栈内存,将数组空间开辟在堆空间内:
int *d = new int ;
这样这块内存就是自己开辟的了,可以使用变量初始化数组的长度,内存空间会在运行时动态分配。
注意:
使用完这个数组后要delete掉,防止内存泄漏。
如果可能的话,使用STL容器替代内置的数组类型,能得到更好的性能和撸代码体验。
相关文章推荐
- C++使用变量作为数组长度
- C语言返璞归真之修改const常量和使用变量定义数组长度
- c++ 数组作为成员变量
- [转载]C++中 使用数组作为map容器VAlue值的解决方法
- C++中变量做数组长度
- 作为引用数据类型,数组变量与基本数据类型变量的使用有哪些区别?
- C++中数组作为参数时,获取数组长度的方法
- C++ 中使用字符数组来存放未知长度的字符串
- C++中使用sizeof取得数组长度
- linux下C++ STL hash_map的使用以及使用char *型变量作为Key值的一大“坑”
- c++中的变量做数组长度
- 数组名作为变量使用时需要注意的陷阱
- C++ 中用变量长度初始化三维数组
- C++中变量和基本类型,标准库类型以及数组和指针的使用规则
- C++不使用变量求字符串长度strlen函数的实现方法
- c++中的变量做数组长度
- 数组定义时长度可以使用变量
- C++中 使用数组作为map容器VAlue值的解决方法
- C++中 使用数组作为map容器VAlue值的解决方法
- C++中使用全局变量