Programming Language/C/C++

[C/C++] char[] 문자열 초기화시 주의할 점

깐요 2017. 6. 15. 15:28

문자열을 동적 메모리를 할당하여 초기화 할 때 주의해야할 점이 있다


char str = new char[1];
delete[] str;                   //new[]를 사용하여 초기화 시킨
                                //포인터 및 널 포인터와 호환
 
char words[15] = L"bad idea";
char *p1 = words;
char *p2 = new char;
char *p3;
delete []p1;                    //결과를 알 수 없다, 사용하지 말자
delete []p2;                    //결과를 알 수 없다, 사용하지 말자
delete []p3;                    //결과를 알 수 없다, 사용하지 말자

new []를 사용하여 초기화한 포인터나 널 포인터가 delete []와 호환되기 때문에 주의할 필요가 있다

p1, p2, p3와 같은 경우에는 delete []와 호환되지 않기에 큰 문제가 생길 수 있다

320x100