예를 들어 while 루프 외부에서 메모리를 할당 할 때 메모리를 내부에서 해제 할 수 있습니까? 이 두 코드는 동일합니까?C 코드에서 메모리를 비우는시기는 언제입니까?
int* memory = NULL;
memory = malloc(sizeof(int));
if (memory != NULL)
{
memory=10;
free(memory);
}
int* memory = NULL;
memory = malloc(sizeof(int));
if (memory != NULL)
{
memory=10;
}
free(memory);
당신이 "문 경우"참조 – ChrisF
"루프 동안 것은"수보다는 의미하지 않는다 'malloc'과'free'에 대한 래퍼 함수를 작성하십시오. 그렇게하면 기본 구현을 변경하려는 경우 (예 : 더 빠른 메모리 할당 기능 사용), 두 줄만 변경하면됩니다 ('malloc' 및'free' 행). 그리고 코드 복제를 피할 수 있습니다. –