백준 11720문제 정답 (배열 동적할당)
- 문제를 풀 때 다양한 방식으로 접근해야겠다.
- 문자열을 선언할 때 문자열의 끝을 알려주는 null의 공간도 함께 생성하는 것 꼭 기억하기!!
- malloc()함수와 free()함수의 사용법을 알게 되었다.
(malloc함수)
* #include <stdlib.h>헤더 파일을 사용함.
* 만약 int형 배열 size 동적 할당을 하면
int* i = (int*) malloc (sizeof(int) * num); //배열의 요소가 num개의 배열을 동적할당한다.
(그만큼의 메모리를 할당한다.)
(int*) : malloc의 반환형이 void* 이므로 (int *)형태로 형변환을 한다.
sizeof(int) : 괄호 안에 자료형 타입을 바이트로 연산해준다.
* num : sizeof()로 연산한 자료형의 바이트 곱하기 num 만큼의 메모리 공간을 할당
동적 할당에 성공 하면 할당한 메모리의 첫번째 주소 리턴
(free함수)
* #include <stdlib.h>헤더 파일을 사용함
* malloc 함수를 사용한 뒤 메모리를 헤제시켜주는 함수
* malloc 함수로 동적 메모리를 할당하면 이 공간은 프로그램이 종료될 때까지 존재한다.
따라서 사용이 끝난 뒤에는 회수를 해야한다.
* free(i) // i는 동적 메모리를 할당한 변수이다.