2017년 7월 25일 화요일

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





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


댓글 없음:

댓글 쓰기