Hoon222y

[2167] 2차원 배열의 합 (2차원 배열 동적할당, memset) 본문

코딩/BOJ & 알고스팟

[2167] 2차원 배열의 합 (2차원 배열 동적할당, memset)

hoon222y 2016. 2. 14. 14:34

2차원 배열 동적할당을 해야하는 문제이다.

배열의 합을 구하는 for 문에서 뻘짓을 했다 ..;; ㅋㅋㅋ

이 문제를 풀면서 정리하게된 2가지 개념은 바로 2차원배열 동적할당과, memset() 사용법이다.


먼저 2차원 배열 동적할당에 대해 정리해보자.

코드 옆에 주석을 달아두었으니 읽어보면 이해가 될것이다. 유의해야할 점은 2차원 동적할당 해제하는 순서를 신경써야 할 것 이다.


다음은 memset()함수이다.

함수에서 mem-라고 시작되는것은 메모리와 관련있다고 한다. ex)memcpy-메모리 카피함수

memset함수를 사용하기 위해 일단 #include <studio.h>를 선언해주고 사용해야 하며,

memset(초기화 메모리 공간의 시작주소,초기화 하고싶은 값, 설정한 데이터의 사이즈) 이런식으로 초기화 해주면 된다.

memset 함수를 이용할때는 

- 1Bytes 변수(char, unsigned char 등)를 제외한 변수를 초기화 할 때에는 0이외의 값으로 초기화를 하면 안됩니다.

- new, malloc 등을 이용하여 동적으로 배열을 생성하는 변수가 있는 

   struct, class에서는 memset으로 초기화를 하면 안됩니다..

- CString은 절대 memset으로 초기화를 하면 안됩니다.

- virtual function을 가지고 있는 struct, class에서는 절대 memset으로 초기화를 하면 안됩니다.

라고 하는데 지금 당장은 와닿지가 않는다. 나중에 참고하게 되면 다시 찾아보도록 하자.

일단은 끝!

Comments