作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
例如,假设我想将字符串“str1”复制到新字符串“str2”:
void function(const char* str1){
char* str2;
str2 = (char *) malloc(sizeof(char) * (strlen(str1) + 1));
strcpy(str2, str1);
...
}
malloc 的参数应该是:
sizeof(char) * (strlen(str1)+1)
或者只是:
sizeof(char) * strlen(str1)
最佳答案
是的,您需要 +1 — strlen
返回字符串长度;要存储一个字符串,您需要为其长度加上一个额外的 NULL
终止符位置。
话虽如此,在这个具体示例中(我确定这只是一个说明问题的示例),您可以只使用 strdup
。
关于c - 在 C 编程中 : Do I need to consider '\0' (null terminator) when mallocing space for a new string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16095054/
我是一名优秀的程序员,十分优秀!