gpt4 book ai didi

c - 在下面的 C 代码中出现段错误?

转载 作者:太空宇宙 更新时间:2023-11-04 00:29:22 25 4
gpt4 key购买 nike

为什么我在下面给出的代码中遇到段错误?

char getstr()
{
static char s[]="Hiii2015";
return s;
}

int main()
{
printf("%s",getstr());
return 0;
}

虽然我知道我正在使用 char 返回类型返回一个地址,并且返回类型必须是 char* 但如果我确实喜欢这样,那么我仍然在 gcc 编译器上获取 null,在另一个编译器上获取段错误,这是什么原因

最佳答案

getstr() 的返回类型错误。

就是char,应该是const char *或者char *,即指针。

照原样,您将返回的指针压缩到 char(可能只有 8 位),然后尝试从 printf() 访问那个非常低的地址,给出你未定义的行为。

您应该为此收到编译器警告。

关于c - 在下面的 C 代码中出现段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33542408/

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