|
sizeof(unsigned char*)는 포인트 변수의 크기인데, 포인트는 무조건 4바이트라고 보심 됩니다.
imageHeight 가 400이면 당근 400 x 4 = 1600 바이트 크기만큼 메모리가 할당되죠
unsigned char **warpedImg2 로 할당 메모리를 캐스팅해서 받은 이유는
할당 받은 메모리의 영역을 포인트 배열로 다루겠다는 의미입니다.
즉 포인트 배열을 가르키는 포인트 값으로 선언한 것에 불과합니다.
포인트 어려운거 없습니다.
공부하실때 세심하게 체크해 가면서 공부하세요.
포인트는 어렵지 않으나, 절대 대충 넘어가서는 C++ 플밍 못합니다.
그럼.
음 님이 쓰신 글 :
: 제가 요즘 C공부중인데 모르는 표현이 나와서 염치 불구하고 질문 올려요..
: unsigned char **warpedImg2;
: warpedImg=(unsigned char**)malloc(imageHeight*sizeof(unsigned char *));
:
: 이렇게 선언 되어있는데.. 만약에 imageHeight가 400이라면 메모리가 얼만큼 할당되는거죠?
: 글고 저기서 unsigned char** 형으로 형변환을 했는데 저게 무슨 의미에요?
: 글고 malloc 에서 보통 malloc(할당하고자하는 바이트수) 이런 표현만 배웠는데
: sizeof(unsigned char*)만큼 할당해준다는게 무슨 의미인지??
:
: 위 소스는 이미지처리책에 나오는 한부분입니다.. 포인터 디기 어렵네요..-_-;
|