gpt4 book ai didi

c++ - 无法正确传递 char 数组

转载 作者:太空宇宙 更新时间:2023-11-04 06:40:27 26 4
gpt4 key购买 nike

一个函数试图将 char 数组传递给另一个函数,但没有成功:

char * ret() {
char buf[32];
buf[0]='1'; // buf char array contains 1
buf[31]='\0';
printf(buf);
return buf;
}

int multiline() {
char temp[32];
strcpy(temp,ret()); // temp array doesn't contain 1 after this line
temp[31]='\0';
printf(temp);
}

请告诉我,如何解决这个问题?

最佳答案

您正在返回一个指向局部变量 char buf[32]; 的指针。这个数组分配在栈上,只在函数内有效,在函数外无效。访问此数组时会出现未定义的行为。

要返回这样的数组,您应该在堆上分配它,例如。使用 malloc()

关于c++ - 无法正确传递 char 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9143389/

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