如何在C++中动态分配全局二维数组
How to dynamic assign a global 2d array in C++
我想制作一个2d,3乘3的数组,如下所示:
double *array;
void setArray(double x, double y, double z){
array = {{x,0,0},
{0,y,0},
{0,0,z}};
}
我读到一些帖子建议这样做:
double **array = new double*[3];
void setArray(double x, double y, double z){
array[0] = new double*[3];
array[0][0] = x;
array[0][1] = 0;
array[0][2] = 0;
...
如果有任何方法,我可以直接使用值{{x,0,0},{0,y,0},{0,0,z}设置2d数组?
提前谢谢。
如果你想使用像{{x,0,0},{0,y,0},{0,0,z}}
这样的列表,你应该使用硬编码大小的数组:
double *array; // no good
double array[3][3]; // OK
填写复印件:
void setArray(double x, double y, double z){
double temp[3][3] = {{x,0,0},
{0,y,0},
{0,0,z}};
memcpy(&array, &temp, sizeof(array));
}
如果您不需要锯齿状数组,并且在设计时大小已知,则可以使用以下语法声明它:
double array[3][3];
然而,如果你想使用初始化列表,你可以这样做:
typedef double Array[3][3];
Array& array(double x = 0.0, double y = 0.0, double z = 0.0) {
static double array_[3][3] = {{x,0,0},{0,y,0},{0,0,z}};
return array_;
}
// init:
array(4,5,8);
// access:
array()[0,2];
相关文章:
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- 在c++中使用动态分配的问题
- 使用递归模板动态分配的多维数组
- 对具有动态分配的内存和析构函数的类对象的引用
- 我有一个对象,它将在整个程序的持续时间内实例化,但一个类成员不会,我应该动态分配它吗?
- 访问动态分配列表中的元素
- 为什么 std::equal_to会导致动态分配?
- 调用析构函数以释放动态分配的内存
- 动态分配Q_Property变量
- 在 C++ 中搜索动态分配的数组中的出现次数
- 动态分配的聊天数组打印缺失的数据和空
- 在对象指针上调用 Delete 是否会递归删除其动态分配的成员
- 如何在C++中动态分配全局字符数组中的类实例?
- 英特尔并行工作室 2015 C++中的 2D 动态分配全局阵列
- 如何动态分配全局 int*?
- 如何在C++中动态分配全局二维数组
- c++中全局动态分配的结构
- 动态分配位于动态分配的结构数组内的全局数组
- 在c++中,全局动态分配的数组对不同的输入给出不同的结果