所以我已经能够学习扩展数组了,但是我想知道如何在扩展空间中添加元素,这是我到目前为止所做的。
int *expand(int *arr, int size)
{
int *newArray;
newArray = new int[size * 2];
memcpy( newArray, arr, size * sizeof(int));
for (int index = 5; index < size; index++)
newArray[index] = 0;
return newArray;
}
答案 0 :(得分:2)
我认为您的代码可能存在错误。 newArray的大小为“size * 2”,但是只在“size”之前初始化元素。
试试这个:
newArray = new int[size * 2];
memcpy( newArray, arr, size * sizeof(int));
for (int index = size; index < (size*2); index++)
newArray[index] = 0;
return newArray;
这应该将新空间中的所有元素初始化为0。