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
'C++' 카테고리의 다른 글
C#의 .dll Library를 C++에서 활용하기 (0) | 2017.12.08 |
---|---|
C++ 2차원 포인터(포인터의 포인터)를 이용한 2차원 배열 다루기 (0) | 2017.08.03 |