반응형
C에서 char 배열에서 메모리를 해제하는 방법
다음과 같은 문자 배열을 만들었습니다.
char arr[3] = "bo";
내가 "arr"라고 이름 붙인 배열과 관련된 메모리를 어떻게 해제합니까?
로컬 변수는 함수가 종료되면 자동으로 해제됩니다. 사용자가 직접 해제할 필요는 없습니다.동적으로 할당된 메모리만 확보합니다(예:malloc
) 힙에 할당되어 있습니다.
char *arr = malloc(3 * sizeof(char));
strcpy(arr, "bo");
// ...
free(arr);
동적 메모리 할당에 대한 자세한 내용은 http://en.wikipedia.org/wiki/C_dynamic_memory_allocation 를 참조하십시오.
당신은 아무것도 자유롭게 해주지 않습니다.리소스를 동적으로 획득한 적이 없기 때문에 무료로 제공해야 하는 것도 허용되지 않습니다.
(당신이 말할 때와 같습니다.int n = 10;
수동으로 관리해야 하는 동적 리소스가 관련되어 있지 않습니다.)
연결된 메모리arr
다음 시간에 자동으로 해제됩니다.arr
범위를 벗어납니다.로컬 변수이거나 정적으로 할당되지만 동적으로 할당되지는 않습니다.
당신이 따라야 할 간단한 규칙은 모든 통화만 해야 한다는 것입니다.free()
호출로 반환된 포인터에서malloc
,calloc
또는realloc
.
char arr[3] = "bo";
Arr은 메모리를 스택 세그먼트로 가져옵니다.arr이 범위를 벗어나면 자동으로 무료가 됩니다.
언급URL : https://stackoverflow.com/questions/21513666/how-to-free-memory-from-char-array-in-c
반응형
'IT' 카테고리의 다른 글
filter-branch --tree-filter 뒤에 gitrepo에서 refs/original/heads/master를 제거하시겠습니까? (0) | 2023.06.22 |
---|---|
Firebase 2.0 - 안드로이드 앱의 여러 가지 맛(환경)을 다루는 방법은 무엇입니까? (0) | 2023.06.22 |
'long long'의 형식 지정 (0) | 2023.06.22 |
iOS Swift - 현재 현지 시간 및 날짜 타임스탬프 가져오기 (0) | 2023.06.22 |
WebForms 중단 없는 유효성 검사 모드에 jquery용 ScriptResourceMapping이 필요함 (0) | 2023.06.22 |