gpt4 book ai didi

c - 将字符串分配给 char* 变量

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

我正在审查的代码使用以下字符串赋值

char *str;
str ="";

编码器然后使用这个“str”来临时保存一个字符串。

str = "This is a message";
fwrite(str, 1 ,strlen(str), fp);

然后在其他地方再次使用此 str 以分配具有类似用途的新字符串。

我知道这行得通,我想知道它究竟是如何工作的。如何声明一个 char 指针并使其指向这样的字符串?这样的指针可以容纳的最大字符串长度是多少?这个字符串存储在哪里?它是自动 malloc 吗?

最佳答案

指针不“保存”字符串,它只是指向原始字符串所在的位置。在这种情况下,字符串文字保留为程序的一部分,并且指针设置为它;当您重新分配指针时,您并没有制作任何副本,只是将指针设置为不同的地址。

因此,字符串的最大大小就是字符串文字的最大大小,这取决于编译器和可用程序空间的大小。

如果你真的想复制一个字符串,首先你必须为它分配一些存储空间,它必须比字符数大一个。然后使用 strcpy 进行复制。

关于c - 将字符串分配给 char* 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17357324/

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