gpt4 book ai didi

c++ - 如何在 C++ 中返回本地数组?

转载 作者:IT老高 更新时间:2023-10-28 21:37:52 25 4
gpt4 key购买 nike

char *recvmsg(){
char buffer[1024];
return buffer;
}

int main(){
char *reply = recvmsg();
.....
}

我收到警告:

warning C4172: returning address of local variable or temporary

最佳答案

我建议std::vector<char> :

std::vector<char> recvmsg()
{
std::vector<char> buffer(1024);
//..
return buffer;
}
int main()
{
std::vector<char> reply = recvmsg();
}

然后,如果您需要 char*在您的代码中,然后您可以使用 &reply[0]随时都可以。例如,

void f(const char* data, size_t size) {}

f(&reply[0], reply.size());

你就完成了。这意味着,如果您使用 C API,那么您仍然可以使用 std::vector , 你可以通过 &reply[0]到 C API(如上所示)和 reply到 C++ API。

底线是:避免使用 new越多越好。如果您使用 new ,然后你必须自己管理它,你必须到delete当你不需要它时。

关于c++ - 如何在 C++ 中返回本地数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7769998/

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