회신: 63.7 관련 질문
, 도장_ 관리자님이 작성배열은 크기가 미리 지정됩니다. 즉, 컴파일하기 전에 크기가 정해져 있어야 합니다.
포인터를 이용하면 동적으로 메모리를 할당해 크기를 자유롭게 만들 수 있습니다. 즉, 컴파일 시점이 아닌 실행 시점에 행렬의 크기를 정할 수 있습니다. 실무에서는 정해진 크기가 아니라 동적인 크기를 처리하는 경우가 더 많습니다. 따라서 포인터를 이용한 동적 메모리 할당이 일반적입니다. 이미지 뷰어를 만든다면 그림 크기에 따라 2차원 배열이 필요합니다. (x, y) 좌표에 해당하는 픽셀값을 저장해서 보여줘야 하기 때문이죠. 그림 크기가 800*600이면 800*600*픽셀값에 해당하는 메모리를 할당해야 하고, 그림 크기가 1024*768이면 1024*768*픽셀값에 해당하는 메모리를 할당해야 합니다. 픽셀값은 흑백 이미지이면 1바이트, 24비트 칼라 이미지면 3바이트, 32비트 칼라 이미지면 4바이트가 됩니다. 자세한 것은 이미지 형식(BMP, PNG, JPG 등)에 따라 달라집니다.
Unit 81. 실전예제: 비트맵 파일을 아스키 아트로 변환하기에서는 비트맵 파일(확장자 BMP)을 읽어서 이미지 크기에 따라 동적으로 메모리를 할당합니다. Unit 81까지 학습해보세요. 자연히 이해가 될 것입니다.
포인터를 이용하면 동적으로 메모리를 할당해 크기를 자유롭게 만들 수 있습니다. 즉, 컴파일 시점이 아닌 실행 시점에 행렬의 크기를 정할 수 있습니다. 실무에서는 정해진 크기가 아니라 동적인 크기를 처리하는 경우가 더 많습니다. 따라서 포인터를 이용한 동적 메모리 할당이 일반적입니다. 이미지 뷰어를 만든다면 그림 크기에 따라 2차원 배열이 필요합니다. (x, y) 좌표에 해당하는 픽셀값을 저장해서 보여줘야 하기 때문이죠. 그림 크기가 800*600이면 800*600*픽셀값에 해당하는 메모리를 할당해야 하고, 그림 크기가 1024*768이면 1024*768*픽셀값에 해당하는 메모리를 할당해야 합니다. 픽셀값은 흑백 이미지이면 1바이트, 24비트 칼라 이미지면 3바이트, 32비트 칼라 이미지면 4바이트가 됩니다. 자세한 것은 이미지 형식(BMP, PNG, JPG 등)에 따라 달라집니다.
Unit 81. 실전예제: 비트맵 파일을 아스키 아트로 변환하기에서는 비트맵 파일(확장자 BMP)을 읽어서 이미지 크기에 따라 동적으로 메모리를 할당합니다. Unit 81까지 학습해보세요. 자연히 이해가 될 것입니다.