본문 바로가기
전공수업/영상처리(C언어)

[C] 2차원 배열 동적 할당

by JooRi 2024. 9. 21.
728x90
SMALL

 

 

본 내용은 아래 첨부한 이전 글에서 실습했던 코드의 2차원 배열의 동적 할당 부분의 개념을 정리하기 위한 글입니다.

2024.09.19 - [전공수업, CS/영상처리(C언어)] - [영상처리] 실습 환경설정(OpenCV 3.4.1, Visual Studio)

 

[영상처리] 실습 환경설정(OpenCV 3.4.1, Visual Studio)

window에서 실행한 내용입니다. * OpenCV 설치 및 환경변수 설정1. OpenCV 다운로드OpenCV - 3.4.15 - OpenCV OpenCV - 3.4.15Become a Member Stay up to date on OpenCV and Computer Vision news Join our Newsletter  opencv.org위 페이지

djjin02.tistory.com

 

* 동적 할당 코드

동적 메모리 할당 코드

 

* 코드 분석

2차원 배열을 구성하려면, 각 행을 가리키는 포인터 배열이 필요하고, 각 행에 대한 실제 데이터를 저장할 메모리 공간도 필요하기 때문에 2번의 동적 할당을 해야 한다.

 

첫 번째 할당: 세로 크기(행)의 포인터 배열 할당(생성)

코드
시각화

첫 번째 할당은 포인터 배열을 위한 것이다. 이 포인터 배열은 각각의 행을 가리키는 포인터들로 이루어져 있다.

예를 들어, m[0], m[1], m[2]...와 같은 포인터 배열이 만들어진다.

 

두 번째 할당: 각 행에 대한 메모리 할당

코드
시각화

두 번째 할당은 각 행에 대한 메모리 공간을 할당하는 것이다.

즉, 각 m[i] 포인터가 실제 데이터를 저장할 수 있도록 메모리 공간을 가로 크기만큼 할당한다.

예를 들어, m[0]은 첫 번째 행을 가리키고, 그 행에 해당하는 메모리를 가로 크기만큼 할당한다.

 

m은 포인터 배열로, 각 행을 가리키고, 각 m[i]는 실제 데이터를 저장할 배열을 가리킨다.

 

 

728x90
LIST

댓글