我需要调整动态数组的大小而不会丢失数据。
像这样:
double * pVecDin;//POINTER
int num_values = 2;
pVecDin = new double[num_values];
pVecDin[0]=5;
pVecDin[1]=6;
int new_num_values=4;
pVecDin = new double[new_num_values];
//Next I lost value of pVecDin[0] and pVecDin[1]
pVecDin[2]=8;
pVecDin[3]=9;
我是否需要制作Auxiliar Dynamic Array
来复制旧值?
像:
int new_num_values=4;
double * pVecDin_aux; //POINTER
pVecDin_aux = new double[new_num_values];
pVecDin_aux = pVecDin;
for(int i=0; i < n; i++)
{
pVecDin_aux[i] = pVecDin[i];
}
答案 0 :(得分:3)
或使用vector
。
答案 1 :(得分:0)
正如nhgrif所提到的,你需要复制数组。
如果您可以使用malloc
进行内存分配,还有另一种方法,那么您可以使用realloc
来调整数组大小。
其他人建议使用std::vector
或list
更好的方法。