相关疑难解决方法(0)

正确的方法来malloc空间的字符串,然后将字符插入该空间?

我有两个字符串,str1和str2.我希望它们在堆中的空间上连接.我使用malloc空间:

char *concat = (char*) malloc(strlen(str1) + strlen(str2) + 1);
Run Code Online (Sandbox Code Playgroud)

我可以这样做:

strcat(concat, str1);
strcat(concat, str2);
Run Code Online (Sandbox Code Playgroud)

concat会在堆上找到两个字符串的位置吗?我问,因为看起来strcat实际上会将str1添加到使用malloc分配的空间的末尾.它是否正确?那么,str1将出现在strlen(str1)+ strlen(str2)+ 1的位置.

那我问的原因是,我使用上面的方法,但我得到的valgrind中的一个错误:条件跳转或移动依赖于未初始化值(S)

c

7
推荐指数
3
解决办法
3万
查看次数

标签 统计

c ×1