【发布时间】:2011-08-02 15:11:44
【问题描述】:
我有两个字符串,str1 和 str2。我希望将它们串联在堆中的空间上。我为他们分配空间:
char *concat = (char*) malloc(strlen(str1) + strlen(str2) + 1);
我可以这样做吗:
strcat(concat, str1);
strcat(concat, str2);
并且 concat 会给我在堆上连接两个字符串的位置吗?我问是因为似乎 strcat 实际上会将 str1 添加到使用 malloc 分配的空间的末尾。它是否正确?那么,str1 将出现在位置 strlen(str1) + strlen(str2) + 1。
我问的原因是我正在使用上面的方法,但是我在 valgrind 中遇到错误: 条件跳转或移动取决于未初始化的值
【问题讨论】:
标签: c