gpt4 book ai didi

c++ - 像这样使用 `const char *` 返回字符串是否合法?

转载 作者:搜寻专家 更新时间:2023-10-31 01:37:06 24 4
gpt4 key购买 nike

<分区>

这里是这个线程的代码改变了一点:How to return a string in my C code?

#include <stdio.h>
const char * getString();
int main()
{
printf("hello world\n");
printf("%s\n", getString());
printf("%s\n", getString2());
return 0;

}

const char * getString()
{
const char *x = "abcstring";
return x;
}

const char * getString2()
{
return "abcstring";
}

这让我有点困惑,因为 x 指向的内存空间,"abcstring",在 getString 中似乎是打开的堆栈而不是堆上。因此,为 x 分配的内存可能会在 getString 结束时释放。如果是这样,printf("%s\n", getString()); 会失败吗?

printf("%s\n", getString2()); 呢?

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