new 와 delete 에서 발생할 수 있는 문제std::string *stringArray = new std::string[100];
...
delete stringArray;
new std::string[100]을 사용하여 100개의 std::string 객체를 배열로 생성했다.delete[]가 아니라 delete를 사용했기 때문에 100개의 객체 중 하나만 삭제될 가능성이 높음.delete는 배열의 크기를 모르기 때문에 하나의 객체만 소멸시킬 가능성이 높음.delete[] stringArrays;
delete[]를 사용하면 배열 크기를 읽고, 모든 객체의 소멸자를 호출한 뒤 메모리를 해제한다.💫Things to Remember
new에서 []를 사용했으면, 반드시 delete[]를 사용해야 한다.new에서 [] 없이 단일 객체를 할당했다면, delete도 [] 없이 사용해야 한다.delete 사용은 정의되지 않은 동작을 초래할 수 있다.std::vector<T> 같은 컨테이너를 사용하는 것이 더 안전하다.