동적 할당을 사용하여 포인터로 개체를 만드는 방법을 연구하고있었습니다. 그리고 나는 한 번 객체가 생성되고 두 번 삭제되면 힙 메모리가 손상된다는 것을 읽습니다. 무엇이 손상된 것입니까? 메모리 누수와 비슷하거나 다른 것입니까?포인터 개체를 삭제하면 힙 메모리가 손상됩니다.
int main()
{
//consider my class name is sample
sample *p= new sample;
//some code
delete p;
//some code
delete p;
}
p를 처음으로 삭제하면 p가 가리키는 메모리가 지워지고 힙으로 안전하게 반환됩니다. 다음에 어떤 일이 일어날까요?
은 'null'대신 'nullptr'을 제안합니다. nullptr의 삭제가 표준에 의해 명시 적으로 effetct가없는 것으로 지원되기 때문에 확실히 안전합니다. – Christophe