2012-07-01 1 views
0
char *val1 = "/root"; 
char *val2 = "/p"; 
val1 = val1+val2; 

2 자 포인터 값을 추가하여 첫 번째 값에 할당하려고합니다. 위 코드 스 니펫이 있습니다.문자열 연결 (2)

+0

당신은 정말 ++ C에서 살펴 보셔야합니다 ... 이상 기타 : 두 문자열을 연결하려면 두를 보관 유지하는데 충분한 크기가 단일 버퍼를 /이 할당해야 수준의 언어. – rubenvb

답변

2

strcat 또는 strncat 문자열을 연결하는 함수를 사용하십시오. C에는 문자열 연결 연산자가 없습니다.

5

그렇게 할 수 없습니다. 두 포인터가 있기 때문에 추가하려고하면 포인터를 직접 추가하려고 시도하지만 포인터가 가리키는 포인터는 조작하지 않습니다. 당신이 코드이 방법을 쓰고 싶다면

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