: // Stack 의 제거 : void destory (Stack *pStack) : { : free (pStack->bottom); : pStack->top = -1; : pStack->size = 0; : pStack->bottom = NULL; : : } : free (pStack->bottom); 을 하면 pStack가 메모리에서 없어지는데 pStack->top = -1; pStack->size = 0; pStack->bottom = NULL; 를 해서 그런 것 아닐까요? 뒤의 세줄을 pStack = NULL; 이렇게 바꾸면 되지 않을까요?--0_o
free 뒤에 포인터를 NULL 로 바꾸면 되지만, 구조체 필드 값을 바꾸는 것은 이미 해제된 메모리를 가리키는 포인터를 정리하는 것입니다. pStack->bottom = NULL 까지 두고, 호출하는 쪽에서도 포인터를 확인하세요.