我陷入了这个问题:如何在函数内部调整已通过引用传递给函数的动态分配数组的大小。我尝试了这个,以及这种方法的无数变化。当然这只是一个例子,它应该打印“john”十次,扩展一个最初只有大小 1(即只有 1 个名称)的引用传递的数组。
#include "stdafx.h"
#include <string>
#include <iostream>
using namespace std;
int NumLast=-1;
int Surname(string *MyData)
{
for (int i=0; i<10 ; i++)
{
NumLast++;
string *Temp = new string[NumLast+1]; // temporary array
for (int jjj=0; jjj<NumLast; jjj++)
Temp[jjj]=MyData[jjj];
delete[] MyData;
MyData=Temp;
MyData[NumLast]="John";
}
return 0;
}
void main()
{
string *Data = new string[1]; // inizializza l'array
Surname(&*Data);
for (int iii=0; iii<10; iii++)
cout << Data[iii] << endl;
system("pause");
}