gpt4 book ai didi

c++ - 从 C++ 中的函数返回数组

转载 作者:太空宇宙 更新时间:2023-11-04 15:21:58 24 4
gpt4 key购买 nike

我尝试了下面的代码来返回一个包含所有字符串 ID 的数组,但没有成功。输出只返回一个数字。如何返回带有 ID 的数组?

#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;
}

最佳答案

您正在返回指向数组中第一个元素的指针。

要访问刚调用 string* arr = getArray(); 的数组元素,您可以使用 arr[0]、arr[1]、arr[2] 等来访问字符串。

不要忘记删除您在函数中分配的内存;目前你有很大的内存泄漏。

通常这不是好的编程,因为函数调用者不知道返回的数组中有多少元素。最好在调用方中获取动物的数量并将其传递到您的函数中。

更好的是,重建您的代码以使用 std::vector,因为我看到您已经在使用 STL。这样您就不必(明确地)担心内存分配和释放。

关于c++ - 从 C++ 中的函数返回数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16701718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com