아래의 코드로 인해 어떻게 매달린 포인터가 생길 수 있습니까? 제 "일부 코드가 「복사 다른 포인터 변수 cPointer의 포인터 값 및 두 번째"일부 코드가 "다른 포인터 변수를 사용하는 경우free()를 사용하면 NULL이 배정 된 포인터에 즉시 이어지는가?
{
char *cPointer = malloc (some constant number);
/* some code */
free (cPointer);
cPointer = NULL;
/* some code */
}
일부 코드는 포인터와 관련이 없다고 가정합니다. cPointer = NULL을 지정하지 않으면; 성명서는 내가 cPOinter에 매달려있는 포인터를 가지고 있다는 것을 의미합니까? – ckv
@viswanathan, 아마도 질문을 편집하고 틀린 것으로 판단하는 문구를 허용하고 싶을 것입니다. –
cPointer = NULL을 제거하면; 문을 사용하면 cPointer는 매달려있는 포인터가되지만 사용하면 문제가 발생합니다. 프로그래머가 NULL을 할당하는 목적은 의도하지 않은 사용, 즉 버그를 찾고 디버깅하는 데 도움이되는 것입니다. –