char *val1 = "/root";
char *val2 = "/p";
val1 = val1+val2;
2文字のポインター値を追加して、最初の値に割り当てたい。上記はコードスニペットです。
そのようにすることはできません。2つのポインターがあるため、それらを追加しようとすると、ポインターが指すものを操作するのではなく、ポインター自体を追加しようとします。2つの文字列を連結するには、両方を保持するのに十分な大きさの単一のバッファを用意/割り当てる必要があります。
char *both = malloc(strlen(val1) + strlen(val2) + 1);
if (both != NULL) {
strcpy(both, val1);
strcat(both, val2);
}
strcat
またはstrncat
関数を使用して文字列を連結します。C には文字列連結演算子がありません。