使用new运算符初始化数组
Use new operator to initialise an array
我想初始化一个数组,该数组的格式使用逗号分隔大括号中的元素,例如:
int array[10]={1,2,3,4,5,6,7,8,9,10};
然而,我需要使用新的运算符来分配内存,例如:
int *array = new int[10];
有没有一种方法可以组合这些方法,这样我就可以使用新的运算符分配内存,并用大括号初始化数组?
在C++(C++11)的新标准中,您可以这样做:
int* a = new int[10] { 1,2,3,4,5,6,7,8,9,10 };
它被称为初始值设定项列表。但在以前版本的标准中,这是不可能的。
这里有相关的在线参考资料和更多的细节(很难阅读)。我还使用GCC和--std=c++0x
选项进行了尝试,并确认它确实有效。
分配后可以使用memcpy
。
int originalArray[] ={1,2,3,4,5,6,7,8,9,10};
int *array = new int[10];
memcpy(array, originalArray, 10*sizeof(int) );
我不知道有什么语法可以让你自动做到这一点。
稍后编辑:
const int *array = new int[10]{1,2,3,4,5,6,7,8,9,10};
相关文章:
- C++使用整数的压缩数组初始化对象
- C++17中函数模板中的静态数组初始化(MSVC 2019)
- 从另一个静态常量数组初始化静态常量数组(只需少量计算)
- 在 Python 和 c++ 2d 数组初始化之间.这是怎麽?为什么呢?
- 字节数组初始化会导致 DirectX 崩溃
- 使用 new 和 值进行数组初始化,但没有显式数量的元素
- 运行时C++数组初始化问题
- 使用带有参数包的数组的成员数组初始化类
- 仅通过C++中数组初始化的不同方法,即可在同一输入上获得两个不同的答案
- C++ 2 个指针数组初始化 C2440
- C++结构字符数组初始化
- C++中的多维数组初始化
- constexpr数组初始化
- C++引物动态数组初始化程序的数目超过大小
- 使用std::index_sequence对std::数组初始化进行包扩展
- 当 std 数组初始化太小时,C++会引发错误吗?
- 如何确定结构数组初始化的大小?
- Qt并发错误:数组初始化需要大括号括起来的初始值设定项列表
- 此代码中的数组初始化样式是什么?这是标准的吗?
- C++ 使用数组初始化时的 STL 向量内存管理