프로그래밍/C | 2015. 4. 25. 16:15
데이터 영역(Data Area)
전역변수, static 변수.
프로그램 시작과 동시에 할당.
프로그램 종료되어야만 메모리에서 소멸.
전역변수가 데이터 영역에 올라가는 일은 main 함수의 호출보다 먼저 진행된다.
스택 영역(Stack Area)
지역변수, 매개변수.
힙 영역(Heap Area)
프로그래머가 관리하는 메모리 영역.
배열의 크기 선언을 반드시 상수로 사용해야 하는 이유
스택, 데이터 영역에 할당될 메모리의 크기는 런타임(run-time)이 아닌 컴파일되는 동안(컴파일 타임)에 결정되어야 한다.
힙에 메모리를 할당하는 것을 두고 '동적 할당(Dynamic Allocation)'이라 한다.
반대로 스택과 데이터 영역에 메모리를 할당하는것 '정적 할당(Static Allocation)이라 한다.
malloc 함수 & free 함수.
malloc 함수.
동적으로 메모리를 할당하는 함수이다. = 힙 영역에 메모리를 할당하는 함수.
할당한 메모리의 주소(첫번째 바이트의 주소)를 리턴한다.
만약에 메모리 부족으로 인해서 메모리 할당에 실패했다면, NULL 포인터가 리턴되므로, 리턴된 포인터가 NULL인지 아닌지 확인해야한다.
[C언어] strlen, strcpy, strncpy, strcat, strncat, strcmp, strncmp (0) | 2015.04.25 |
---|---|
[C언어] 표준 입 출력과 버퍼(Buffer) (0) | 2015.04.25 |
[C언어] puts,fputs, gets, fgets, (0) | 2015.04.25 |
[C언어] 포인터, const 키워드 (0) | 2015.04.23 |
[C언어] 문자열 상수, 포인터 배열 함수 (0) | 2015.04.23 |
[C언어] 재귀적 함수 호출, n!(Factorial 계산) (0) | 2015.04.22 |
[C언어] static 변수, register 변수 (0) | 2015.04.22 |
[C언어] printf, scanf, %e, %E (0) | 2015.04.22 |
[C언어] 리터럴(literal) 상수, 심볼릭(Symbolic) 상수 (0) | 2015.04.22 |
[C언어] sizeof 연산자, double형, unsigned (0) | 2015.04.22 |
Recent Comments