gpt4 book ai didi

c - Malloc - 为什么该字符串接受具有较小分配的文本?

转载 作者:行者123 更新时间:2023-11-30 21:13:42 25 4
gpt4 key购买 nike

我想知道为什么这个程序没有段错误?

    int main(void)
{
char *s = malloc(sizeof(char) * 5);

s = "Hello world !";
printf("%s\n", s);
}

我的意思是我只分配了 5 个字符的大小,但它打印了整个文本。

谢谢。

最佳答案

之后

char* s = malloc(5);

s指向分配的内存

s = "Hello World !";

您将 s 设置为指向内存中的另一个位置,但您并未将字符串复制到 s 指向的位置。为此,您需要使用 strcpy 或 memcpy。

关于c - Malloc - 为什么该字符串接受具有较小分配的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48125763/

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