我有两个字符串,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 ×1