【发布时间】:2020-03-20 19:27:03
【问题描述】:
我有一个结构定义为
struct KVPair {
char key[7];
double value;
};
我使用创建一个二维空结构数组
KVPair 矩阵[1000][500]={};
我稍后会填充这些值。
但是,我想要的是我应该能够从巨大的二维 1000x500 数组中创建子数组(二维)
意思是,如果在我的程序中的某个时候需要,我应该能够创建(或子分配或任何想使用的术语)类似
KVPair subMatrix[20][15];
这不应该使用新的内存块,而应该使用巨大数组中的现有块。有点租用内存空间。
然后又在某处下线
KVPair anotherSubMatrix[70][30];
当工作完成后,它也应该腾出租用的内存空间,以便下一个租户可以使用它。
在进行了一些 google 和 stackoverflow 搜索之后,使用一维数组执行此操作看起来有些直接,但二维数组看起来具有挑战性。
欢迎任何代码建议。
注意:我需要做这一切,因为在我的组织中不允许在堆上分配内存,而且我们严格遵循提到的错误准则 “数组声明应包含明确的大小规范”
【问题讨论】: