IT

C에서 char 배열에서 메모리를 해제하는 방법

itgroup 2023. 6. 22. 21:41
반응형

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

반응형