확장 및 함수 내의 배열에 새 개체를 추가하려면 해당 배열을 함수 외부에 영향을 미치려고합니다. 배열 포인터는 다음과 같이 보내집니다. 매개 변수).확장하고 새 개체를 함수 안에 배열에 추가하십시오.
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++;
}
이 코드는 함수 내부에서 훌륭하게 작동하지만, 배열 외부에있을 때 배열은 여전히 비어 있습니다. 포인터가 함수 내부에서 변경 되었기 때문에 이것을 이해하지만 포인터를 변경하지 않고 배열을 확장 할 수 있습니까?
는 (필자는 리턴 데이터 유형 또는 매개 변수 할당 요구 사항을 변경할 수 없습니다.)
벡터를 사용하여 참조로 전달하십시오. 훨씬 더 간단하고 안전합니다. (BTW, 거기에 두 번째 삭제 _yally 생선 보인다.) – Mat
* 나는 반환 데이터 형식 또는 매개 변수를 변경할 수 없습니다 * 다음 그것은 ** 불가능 ** 당신이 원하는대로 할 수있어. – cnicutar
그래,이 요구 사항을 보았 기 때문에 사용 벡터를 말한 대답을 삭제해야했다. – boiler96