정적 메모리 할당
보이기
이 문서의 내용은 출처가 분명하지 않습니다. (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);
}
}
같이 보기
[편집]이 글은 컴퓨터 과학에 관한 토막글입니다. 여러분의 지식으로 알차게 문서를 완성해 갑시다. |