반응형

스택 : int a; char b; 이런것들이 스택에 들어간다.


int a[100]을 하면 스택이 많은 부분을 잡기에 이러한 현상을 없애기 위해 malloc를 통해 동적할당을 하게된다.


또한 스택은 함수들도 담아낸다.



함수 선언을 하고 정의를 하는 이유는 정의를 먼저 하게 되면 정의의 순서가 뒤바뀌게 되면 정의한 내용끼리


순서가 안맞는 경우가 발생 할 때 오류를 발생하지만, 함수 선언을 하게 되면 함수 선언 순서가 어떻든 관계 없이


마음대로 순서를 정해도 오류가 발생하지 않기에 함수의 선언을 해준 뒤 함수 정의를 하는 것이 좋다.


스택은 시스템 마다 다르지만 보통 1MB 정도 할당이 된다.



스택 오버플로우에 관한 몇가지 내용들


1. 지역변수로 지나치게 큰 배열을 할당하면 스택 오버플로우가 발생한다.


2. 함수를 완전히 끝내지 않고 다른 함수를 계속 호출하여 지역변수가 쌓이는 경우에 스택 오버플로우가 발생한다.

( 재귀 함수를 이용할 때 조심해야 한다. )





구조적 프로그래밍


하나의 프로그램에서 어떠한 함수가 무얼하는지, 순차적으로 어떻게 돌아가는지에 대한 프로그래밍



객체지향 프로그래밍


레고의 블록이라 생각을 하는것이 가장 쉽다. 많은 구조적 단위의 모듈들을 최대한 재사용 가능하게 만들어서


여러 곳에서 사용 할 수 있도록 하는 프로그래밍이다. 



반응형

'Basic > C' 카테고리의 다른 글

구조체 배열 포인터  (0) 2015.11.21
구조체 포인터  (0) 2015.11.21
배열, 포인터 몇가지 정리내용  (0) 2015.11.16
2차원 배열 동적할당 및 구성  (0) 2015.10.09
난해한 포인터들 정리  (0) 2015.03.07