Я застрял, и я не уверен, как это сделать, чтобы создать копию моего массива. Как создать копию моего массива Person Person с его оригинальным контентом?Как скопировать массив структур?
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
using namespace std;
struct Person {
string name;
int age;
};
const int arraySize = 2;
Person arrayM[arraySize];
void createArray(Person personArray[], int SIZE);
void printArray(Person personArray[], int SIZE);
int main()
{
srand(time(NULL));
cout << "Hello world!" << endl;
createArray(arrayM, arraySize);
printArray(arrayM, arraySize);
return 0;
}
void createArray(Person personArray[], int SIZE)
{
for(int i = 0; i < arraySize; i++)
{
int age1 = rand() % 50 + 1;
int age2 = rand() % 25 + 1;
personArray[i].age = age1;
personArray[i].age = age2;
}
}
void printArray(Person personArray[], int SIZE)
{
for(int i = 0; i < SIZE; i++)
{
cout << endl;
cout << personArray[i].age << " " << personArray[i].age;
}
}
void copyStruct(Person personArray[], int SIZE)
{
int copyOfArray[SIZE];
for(int i = 0; i < SIZE; i++)
{
???
}
}
Используйте [станд :: массив] (HTTP : //en.cppreference.com/w/cpp/container/array) и C++ 11 –
Рассмотрите возможность использования контейнера stl типа 'std :: vector' –
Bathsheba
Важный момент: независимо от того, как вы: «копируете» perso nArray ... ваша переменная "int copyOfArray []" * перестает существовать * при выходе из copyStruct(). Вы * ДОЛЖНЫ * выделять свою «копию» по-другому, если вы хотите использовать ее вне copyStruct() ... – FoggyDay