【发布时间】:2019-04-17 16:11:05
【问题描述】:
我需要有效地分配一个二维数组,一个是已知的 (5),另一个是未知的。
我的目标是拥有一个名为 block 的连续内存块,以下列方式存储我的数据: 块[0,0] 块[0,1] 块[0,2] 块[0,3] 块[0,4] 块[1,0] ...]
以下代码编译(在 C++ 中):
unsigned int size2=200;
auto block = new float[size2][5];
正确吗? 变量块的类型是什么? 我试过了:
float[5]* block = new float[size2][5];
float[5] block[] = new float[size2][5];
float block[][5] = new float[size2][5];
float block*[5] = new float[size2][5];
所有这些都会导致错误。 我已经没有想象力了......
【问题讨论】:
-
如何创建指针数组,每个指针指向一个动态数组?
-
它分配额外的内存并将分配的内存碎片
-
什么不使用向量?