gpt4 book ai didi

c - = 号赋值与 strcopy 赋值的区别

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

以下代码输出“test”。因为只为 x 分配了两个字节,所以它不应该只打印“te”吗?

char *x = malloc(sizeof(char)*2);
x = "test";
printf("%s",x);

strcopy 如何正确完成这项工作?

最佳答案

实际上,如果你在调用之前和之后打印 x 的值:

x = "test";

你会看到它已经改变了。通过丢失分配的内存的跟踪,您将面临内存泄漏。

此外,printf 打印一个从指针位置开始的字符串,直到找到以“\0”(0) 结尾的字符串。

建议的解决方案:

char* x = malloc(5);    /* sizeof(char) is always equal to 1 */
strcpy(x, "test");

关于c - = 号赋值与 strcopy 赋值的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24877973/

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