Я попробовал код ниже, чтобы вернуть массив со всеми идентификаторами строк, но это не сработало. Результат просто возвращает число. Как я могу вернуть массив с идентификаторами?Возвращаемый массив из функции в C++
#include <iostream>
#include <string>
using namespace std;
string* getArray()
{
int nanim;
cout << "Enter the number of animals: ";
cin >> nanim;
string *id = new string[nanim];
for (size_t i=0; i < nanim; i++)
{
cout<< "\nEnter id anim "<< i+1 << ": ";
cin >> id[i];
}
for (size_t i = 0; i < nanim; i++)
{
cout << id[i] << endl;
}
return id;
}
int main()
{
int n;
cin>>n;
string* anim[n]=getArray();
cout<<anim;
return 0;
}
Вы не возвращаете массив, вы возвращаете указатель на первый элемент массива. Вам будет намного лучше использовать 'std :: vector'. – chris
Вы не можете возвращать массивы из функций (или передавать массивы в функции). Вот и все. –
Конечно, вы можете, вы просто не можете знать длину. – Joel