增加多维数组的大小

C++ Increment multidimensional array size

本文关键字:数组 增加      更新时间:2023-10-16

我有一个保存2D数组数据的函数。问题是,数组每秒要在互联网上发送50次,所以我希望数组的大小尽可能小,不浪费。那么,假设我的程序在这十分之一秒内更新了3次,我想让数组的第二维恰好是3。如果更新10次,就是10次,如果只有1次,就是1次。我试图通过在每次更新之前将第二次维度大小增加1来实现这一点。

char* a[254];
/* every tick */ 
for (int i=0; i<254; i++)
{
    a[i]=new char[counter]; //counter is incremented by one every update
} 

这将工作,或者它会只是移动数组的边界和混乱已经存在的数据?

编辑:我会试着解释得更好一点。如果我有一个[2][2]数组,第三个位置是[2][1]。假设所有的数组都是0除了[2][1]是1。现在,如果我用new增加第二维,它会被移动到新的位置[2][1]还是仍然留在第三维,现在是[1][3]?

是的,每个"new"调用都将分配新的内存,而不会复制已经存在的数据。此外,内存泄漏将满足