정적 메모리 할당
이 문서의 내용은 출처가 분명하지 않습니다. (2010년 11월) |
정적 메모리 할당은 메모리 할당 방법 중에 하나로, 메모리의 크기가 하드 코딩되어 있기 때문에 프로그램이 실행될 때 이미 해당 메모리의 크기가 결정되는 것이 특징이다.
장단점
[편집]- 장점: 해제하지 않음으로 인한 메모리 누수와 같은 문제를 신경쓰지 않아도 된다. 정적 할당된 메모리는 실행 도중에 해제되지 않고, 프로그램이 종료할 때 알아서 운영 체제가 회수한다.
- 단점: 메모리의 크기가 하드 코딩되어 있어서 나중에 조절 할 수 없다. 스택에 할당된 메모리이므로 동적 할당에 비해 할당 받을 수 있는 최대 메모리에 제약을 받는다.
정적 할당 방법
[편집]C 언어
[편집]C 언어에서 정적 할당된 메모리는 스택에 위치하게 된다.
#define STATIC_ALLOC 100 #include <stdio.h> #include <string.h> void main() { char StaticAlloc[STATIC_ALLOC]; memset(StaticAlloc, 0, STATIC_ALLOC); strcpy(StaticAlloc, "Hello, World!"); printf("StaticAlloc == %s\n", StaticAlloc); printf("END\n"); getchar(); }
C# 언어
[편집]C#에서도 STATIC_ALLOC 키워드를 통해 정적 할당을 지원한다. 단, 값 형식일 경우에만 가능하다.
using System; using System.Runtime.InteropServices; public static class Test { public const int STATIC_ALLOC = 100; public static void Main() { char* StaticAlloc = stackalloc char[STATIC_ALLOC]; string _tmp = "Hello, World!"; Marshal.Copy(_tmp.ToCharArray(), 0, StaticAlloc, _tmp.Length); } }
같이 보기
[편집]![]() | 이 글은 컴퓨터 과학에 관한 토막글입니다. 여러분의 지식으로 알차게 문서를 완성해 갑시다. |