我正在尝试扩展一个新对象并将其添加到函数内部的数组中,并使该数组在函数外部也受到影响(数组指针作为参数发送)。
void addMedia(Media* medias[], int &nrOfMedias, string title, int publYear, string author, int nrOfPages)
{
Media** tempArray = new Media*[nrOfMedias +1];
for(int i = 0; i < nrOfMedias; i++)
{
tempArray[i] = medias[i];
}
delete [] medias;
medias = tempArray;
delete [] tempArray;
medias[nrOfMedias] = new Book(title, publYear, author, nrOfPages);
nrOfMedias++;
}
这段代码在函数内部工作得很好,但是当我离开它时,数组仍然是空的。据我了解,这是因为指针在函数内部发生了更改,但是如何在不更改指针的情况下扩展数组?
(我无法更改返回数据类型或参数、赋值要求。)