我想獲得這個函數來創建一個新的數組爲2倍的數組參數的大小,將內容複製到新的數組,併爲數組的後半部分,通過做2 *的值創建新的值數組的前半部分,然後刪除原始數組。重複此過程達指定的次數,然後返回新的數組。我覺得我有正確的算法,但我的代碼不起作用。請幫忙!函數將數組的大小加倍任意多少倍?
int *ArrayDynamicAllocation(int array[], int size, int number)
{
int *new_array = NULL;
for(int i=0; i<number-1; i++)
{
new_array = new int[size*2];
for(int j=0; j<size-1; j++)
{
new_array[j]=array[j];
new_array[j+size]=2*array[j];
}
array=new_array;
delete[] array;
size=size*2;
}
return new_array;
}
一個例子輸出將是如果我的信息,以把我的功能是 INT ARR [2] = {0,1}; array_size = 2; number = 3; 我希望它輸出0 1 0 2 0 2 0 4 0 2 0 4 0 4 0 8
[關接一個(HTTP://en.wikipedia .ORG /維基/關逐one_error)。 'size-1'應該是'size','number-1'應該是'number'。 – Pradhan 2015-01-21 04:39:09
'array = new_array; delete [] array;'結果不會很好,既不適合你的後續迭代也不適合你的最終返回值。很確定你想要這些行*顛倒*。 – WhozCraig 2015-01-21 04:39:48