|
김영찬 님이 쓰신 글 :
: const WCHAR* const* kp_chars = {{'0','1'.......},{'a','b'......}}
선언 제체가 맞는지 모르겠네요. 저런 선언은 틀린 것 같은데..;;
중간에 const* 를 이해할 수 없네요.
원하시는 거라면 이런 게 아닌가요?
const WCHAR **kp_chars = ....
그런데 이거 역시 문제가 되네요.
포인터는 주소를 저장할 공간이지, 포인터가 메모리 공간을 갖고 있는 게 아닙니다.
그러니 배열 초기화 방식은 설사 되더라도 통하지 않겠지요.
그리고 const(상수) 형으로 선언을 하신다는 것은,
그 이후에 변수의 값이 바뀔 수 없음을 나타냅니다.
그러나 초기화를 하는 변수라면, 후에 쓰인다는 뜻이니,
const 선언은 의도에 어긋나는군요.
따라서 다음과 같이 선언해야 합니다.
WCHAR **kp_chars = NULL; // 포인터 변수의 초기화.
kp_chars = (WCHAR **) malloc(sizeof(WCHAR) * 2 * 26); // 메모리 할당.
memset(kp_chars, 0, sizeof(WCHAR) * 2 * 26); // 메모리 공간 초기화.
(실행 코드)
free(kp_chars); // 메모리 공간의 해제
포인터와 상수 선언에 대해서 공부해 보세요.
|