동적메모리

C프로그래밍/개인 공부

C언어 - 연결리스트

연결리스트(linked list) 지금까지는 다량의 데이터를 '배열'에 저장했었다. 배열을 사용하면 쉽고 빠르게 구현이 가능하지만, 크기가 고정되기때문에 크기를 늘이거나 줄이는 동적인 활동을 하지 못하는 단점이 있다. 예를 들어, 만약 a[3]에 데이터를 삽입하려면 a[3]부터 모든 데이터를 뒤로 밀어서 빈 공간을 만들어야한다. 이렇듯, 기존의 데이터들을 이동시켜야한다. 연결 리스트(linked list)는 이런 단점을 극복할 수 있다. 연결리스트는 각각의 원소가 포인터를 사용해서 다음 원소의 위치를 가르킨다. 즉, 포인터를 사용해서 자료들을 연결한다. 이런식으로 A박스에 있는 원소가 포인터로 B를 가르키고 B에 있는 원소가 포인터로 C를 가르킨다. 그래서 데이터의 삭제와 삽입이 쉽다 데이터를 연결하는 ..

C프로그래밍/개인 공부

C언어 - 동적 메모리

동적 메모리란? 프로그램이 메모리를 할당하는 방식에는 2가지 방법이 있다. 우리가 처음부터 써왔던 방법은 '정적 메모리 할당(static memory allocation)'이다. '정적 메모리 할당'은 미리 정해놓은 만큼의 메모리를 할당받는 것이다. 이 방법은 간편하지만 단점이있다. 공간의 낭비가 있을 수 있기 때문이다. 예를 들어서, 학생들 성적을 저장하기위해서 미리 100개의 정수를 저장할 수 있는 배열을 만들었다고 가정해보자. int scores[100] 하지만, 이 배열에 70명의 학생의 성적만이 입력된다면, 나머지 30개의 공간은 낭비되게 된다. 그렇다면 필요한 공간만 그때그때 할당받으면 메모리를 더욱 효율적으로 사용할 수 있게된다. 이것이 '동적 메모리 할당(dynamic memory allo..

Jminu
'동적메모리' 태그의 글 목록