如何在调用strcpy之前分配数组?

2024-02-02

Given:

char test[] = "bla-bla-bla";

两者哪个更正确?

char *test1 = malloc(strlen(test));
strcpy(test1, test);

or

char *test1 = malloc(sizeof(test));
strcpy(test1, test);

这适用于所有以空结尾的字符串,包括指向char arrays:

char test[] = "bla-bla-bla";
char *test1 = malloc(strlen(test) + 1);
strcpy(test1, test);

您将无法获得指向的数组的正确大小char* or const char* with sizeof。因此,该解决方案更加通用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在调用strcpy之前分配数组? 的相关文章

随机推荐