连接字符串(2)

Zeb*_*man 0 c pointers char

char *val1 = "/root";
char *val2 = "/p";
val1 = val1+val2;
Run Code Online (Sandbox Code Playgroud)

我想添加2个char指针值并将其分配给第一个值.上面是代码snippt.

Jer*_*fin 5

它不可能那样做.由于你有两个指针,尝试添加它们会尝试自己添加指针,而不是操纵它们所指向的指针.要连接这两个字符串,您需要/分配一个足够大的缓冲区来容纳两个字符串:

char *both = malloc(strlen(val1) + strlen(val2) + 1);
if (both != NULL) {
    strcpy(both, val1);
    strcat(both, val2);
}
Run Code Online (Sandbox Code Playgroud)