본문 바로가기

malloc

(2)
C 언어 | malloc과 포인터 학습 목표 포인터의 개념과 malloc 함수의 용법을 잘 이해할 수 있다. 6주 차부터는 C로 구현할 수 있는 다양한 데이터 구조를 배운다. 데이터 구조를 정의하고 관리하기에 앞서 메모리와 포인터에 대한 개념을 정확히 이해해야 한다. malloc과 포인터 지난 포스팅의 malloc 함수와 포인터를 복습하는 예제를 보자. 코드를 살펴보자. main 함수에서 먼저 포인터 x와 y를 선언한다. x에 malloc 함수를 이용해 int 자료형에 해당하는 메모리를 할당한다. x와 y 포인터가 가리키는 지점에 각각 정수를 저장한다. 코드에는 한 가지 오류가 있다. 프로그램을 실행시켜보자. 에러를 보면 포인터 y에 문제가 있음을 알 수 있다. y는 포인터로 선언되었을 뿐이지 x처럼 메모리를 할당받지 못했다. 어디를 가..
C 언어 | 메모리 할당과 해제 학습 목표 메모리를 할당하고 해제할 수 있다. 메모리 할당과 해제 malloc() 함수를 이용하여 메모리를 할당한 경우 저장한 값이 필요가 없어지면 쓰레기 값으로 남는다. 이를 메모리 누수(memory leak)라고 한다. 메모리 누수를 방지하기 위해서는 free() 함수를 이용해 메모리를 해제해줘야 한다. 메모리 누수에 관련된 예제를 보자. 프로그램을 살펴보자. f 함수를 보면 포인터 x에 malloc() 함수를 사용해 메모리를 할당한다. 메모리의 크기는 int 형(4바이트)의 10배로 40바이트를 할당한다. x의 10번째 인덱스에는 0을 할당한다. main 함수에서는 f 함수를 실행시키고 0을 반환한다. 이 프로그램의 메모리 누수를 확인해보자. valgrind라는 메모리 누수 확인 프로그램을 사용하면..