gpt4 book ai didi

c - 在字符串文字上使用 strdup 的优点和缺点

转载 作者:行者123 更新时间:2023-12-02 01:21:30 25 4
gpt4 key购买 nike

我想清楚以下代码的所有优点/缺点:

{
char *str1 = strdup("some string");
char *str2 = "some string";
free(str1);
}

str1:

  • 您可以修改字符串的内容

str2:

  • 您不必使用 free()
  • 更快

还有其他区别吗?

最佳答案

如果可以的话,两者都不使用,并通过以下方法之一避免使用

static char const str3[] = { "some string" };
char str4[] = { "some string" };

str3(如果您从不打算修改它)和 str4(如果您打算修改)。

str3 确保程序中的其他函数无法修改您的字符串(字符串文字可以共享可变)。 str4 在堆栈上分配一个常量大小的数组,因此分配和释放没有任何开销。系统只需复制您的数据即可。

关于c - 在字符串文字上使用 strdup 的优点和缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3756565/

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