memcpy()함수를 이용한 문자열 복사 하기


char *name = "홍 길동";


//strlen() : 현재 문자열의 크기 값을 반환

//size_t strlen(const char *_Str)

//따라서 매개인자의 데이터 타입은 char* 형

char *kkk = new char[strlen(name) + 1];


//만일 char *kkk = new char[strlen(name) + 1]의 작업 없이 

//char *kkk;로만 선언후 memcpy(kkk, name, strlen(name))과 같이 하면

//이 경우는 "초기화되지 않은 'kkk' 지역 변수를 사용했습니다."라는 에러 발생.

//이유는 메모리 할당되지 않은 상태에서 memcpy()로 복사하고자 했기 때문이다.


//memcpy() : void *memcpy(void *dest, const void *src, size_t count)

//아래는 name에 있는 문자열을 kkk에 복사를 하되 strlen(name)+1만큼 복사

memcpy(kkk, name, strlen(name));


//printf("kkk : %s\n", kkk);

//cout << "kkk : " << *kkk << endl; //not work

cout << "kkk : " << kkk << endl; //work





+ Recent posts