gpt4 book ai didi

c++ - 返回并传递数组以在 C++ 中运行

转载 作者:行者123 更新时间:2023-11-27 23:12:26 24 4
gpt4 key购买 nike

我正在尝试返回一个数组并将其传递给不同的函数:

    int* getBasicArray(){
int amountArray[5];
amountArray[0]=1;

return amountArray;
}
void printArray(int (*amountArray)){
cout <<amountArray[0]<<endl;
}
int main()
{
int* test=getBasicArray();
cout <<test[0]<<endl; //Prints 1
printArray(test); //Prints 19354128

不知何故,当我尝试将它传递给一个简单的打印函数时,我的数组变得一团糟。我做错了什么?

最佳答案

您将返回一个指向临时本地对象的指针,该对象在退出函数后立即销毁。

你为什么不尝试 std::vector 并摆脱指针?

std::vector<int> getBasicArray()
{
std::vector<int> amountArray(5);
amountArray[0]=1;

return amountArray;
}

void printArray(const std::vector<int> &arr)
{
for (auto &x : arr)
cout << x <<endl;
}

int main()
{
auto test = getBasicArray(); // std::vector<int> test = getBasicArray();

cout <<test[0]<<endl;

printArray(test);
}

关于c++ - 返回并传递数组以在 C++ 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19331934/

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