연결리스트
메모리의 구성
코드 영역 - 실행할 프로그램의 코드가 저장되는 메모리 공간. CPU는 코드영역에 저장된 명령문들을 하나씩 가져가서 실행을 한다.
데이터 영역 - 전역변수와 static 변수가 할당된다. 프로그램의 시작과 동시에 메모리 공간에 할당되어 프로그램 종료 시까지 남아있게 된다.
스택 영역 - 지역변수와 매개변수가 할당된다. 선언된 함수를 빠져나가면 소면된다는 특징.
힙 영역 - 생성과 소멸의 시기가 지역변수나 전역변수와 다른 유형의 변수들을 다룸.
동적 할당
allocation 할당
malloc함수 - 메모리 공간을 할당. 누군가 주소를 받아줘야 함.
free함수 - 할당된 메모리 공간을 해제.
int main()
{
char *p; //
p=malloc(10); //p는 malloc 10byte를 가리킴
//p가 가리키지 않으면 어딘가에는 존재하지만 찾지 못함.
p=0; //
free(p);
}
위의 메모리 구조와 함께 보면 이해 갈 거임.
'c언어' 카테고리의 다른 글
20140416 - LinkedList, 분할 컴파일(~.h, ~.c), 매개변수의 결합과 문자열화 (0) | 2014.04.16 |
---|---|
20140415 - Linked List (0) | 2014.04.15 |
20140411 - 구조체 변수를 대상으로 가능한 연산, 중첩된 구조체의 정의와 변수 선언, 공용체(Union)의 정의와 선언 (0) | 2014.04.11 |
20140410 - 메모리에 따른 구조체 변수와 포인터 사용법, 포인터 변수를 구조체의 멤버로 선언하기, 구조체 변수의 주소 값과 첫 번째 멤버의 주소 값, 구조체의 정의와 typedef선언, 함수로의 구조.. (0) | 2014.04.10 |
20140409 - 구조체 메모리 할당 (0) | 2014.04.09 |