gpt4 book ai didi

c - 返回动态分配字符串的函数工作一次,然后在后续调用中返回垃圾值(在调用 free 后)

转载 作者:行者123 更新时间:2023-11-30 20:30:18 24 4
gpt4 key购买 nike

一切都在标题中。我提供了屏幕截图来查看我的代码和输出。基本上,我调用一个返回动态分配的字符串(char*)的函数,在 main 中打印它,它看起来很完美。然后我释放该变量,再次调用该函数时,我得到一个垃圾输出,这看起来像是一个内存错误,但我不知道它可能来自哪里。感谢任何帮助,被困了几个小时。谢谢!

function main output

抱歉,如果这些链接很烦人,我是第一次发帖

最佳答案

您正在将结果构建到未初始化的字符串数组中:

char result[200];

...

strcat(result, ...);

未初始化的变量中可能包含任何内容。您可以在声明变量后添加一个空字符作为第一个字符:

char result[200];
result[0] = '\0';

这样第一个字符将是字符串终止符,字符串函数将按预期工作。

关于c - 返回动态分配字符串的函数工作一次,然后在后续调用中返回垃圾值(在调用 free 后),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54566812/

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