이 코드를 작성했습니다.
생성자가 정상적으로 작동하지만 소멸자에서 "Windows가 중단 점을 트리거했습니다."라는 메시지가 나타납니다. 이 문제를 어떻게 해결해야합니까?소멸자에서 삭제 문제
template class CyclicalArray {
private:
T* mem_ptr;
public:
CyclicalArray(size_t capacity, const T& default_value) {
this->default_value = default_value;
this->capacity = capacity;
head_index = 0;
mem_ptr = ::new T[capacity]; //memory allocating
for(T* p = mem_ptr; p < mem_ptr + capacity * sizeof(T); p += sizeof(T)) {
::new (p) T (default_value); //initialization
}
}
~CyclicalArray() {
for(T* p = mem_ptr + sizeof(T); p < mem_ptr + capacity * sizeof(T); p += sizeof(T)) {
p->~T();
}
delete[] mem_ptr;
}
내가 실수하지 않는다면,'std :: allocator '와'allocate (capacity)','construct (p, default_value)','destroy (p)'와'deallocate (mem_ptr, capacity)'? – UncleBens