[英]Allocating memory for two concatenated strings
这是分配内存以存储两个串联字符串的正确方法吗?
size_t len1 = strlen(first);
size_t len2 = strlen(second);
char * s = malloc(len1 + len2 + 2);
还是应该使用malloc(len1 + len2 + 1)
?
让我们看一下存储字符串的必要条件:
'\\0'
或仅0
) 这使其strlen(first) + strlen(second) + 1
:
char *s = malloc(len1 + len2 + 1);
它应该是
char * s = malloc(len1 + len2 + 1); // 1 more space for \0
为NUL
终止符再分配一个空间(字节)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.