我有以下代码并编辑我将在我正在创建的程序中处理的“路径”的字符串。
我的问题是我的代码有效,但我不知道为什么或更清楚我不明白为什么strcat
允许src
附加到dest
. 由于一切都在使用动态字符串,我不应该这样做realloc dest
。但是当我尝试时,realloc
失败了
#include <stdio.h>
#include <string.h>
int main(int argc, char** argv) {
char *src = argv[1];
char *dest = argv[2];
char *d_basedir;
int s_length = strlen(src);
printf("dest starts as %s: length %zu\n", dest, strlen(dest));
printf("src starts as %s: length %zd\n", src, strlen(src));
if(!(src[s_length - 1] == '/')) {
if((d_basedir = strrchr(src, '/')+1) != NULL) {
printf("basedir is %s\n", d_basedir);
strcat(dest, d_basedir);
printf("dest changed to %s: length %zd\n", dest, strlen(dest));
}
}
printf("dest ends as %s: length %zd\n", dest, strlen(dest));
return 0;
}