C언어 배열 메모리 관리
정적 메모리 할당
static : 정적 = 프로그램 시작시 메모리 자원 할당
프로그램이 정적 메모리로 할당되는 경우, 프로그램 종료시 까지 메모리 자원을 사용하게 된다.
프로그램 입장에서는 사용하기 간편하다.
단, 할당할 메모리를 계산하지 못 할 때, 문제가 발생한다.
정적 메모리를 할당해 사용하고 있는 프로그램이 있다고 하면, 어떤 이유에서 메모리의 공간을 확보해야 할 문제가 발생 한다면 정적으로 잡은 메모리를 늘리려고 할 때 문제가 발생한다.
이것 또한 해결 방법으로 메모리 복사해 다시 할 당 할 수 있지만 효율적인 방법이 아니다.
int main(voie){
int i, static_memory[10], n=10; // p[10] 정적 메모리 할당
/* n 개의 정수 블록을 할당 */
for(i=0; i<n; i++){
static_memory[i] = i;
}
/* 배열 값 출력*/
for(i=0; i<n; i++){
printf("%d\n", static_memory[i]);
}
}
정적 메모리 할당은 일시적으로 배열을 사용 할 때 자원 낭비가 발생하게 된다.
자료 크기가 변화할 때 효과적으로 대체하지 못한다.
장점은 빠르다.
대량의 자료나 메모리를 많이 사용할 때 정적 메모리 할당은 사용하지 말아야 한다.
대량의 자료에서는 동적 메모리 할당 한다.
댓글 없음:
댓글 쓰기