У меня есть вопрос новичка о C++ и деструкторах. Моя программа на языке С ++ дает ошибку сегментации после удаления указателя класса, если я объявила деструктор, иначе я этого не сделаю, и я не понимаю, почему. Помощь очень ценится.Ошибка сегментации деструктора C++
основной файл, в котором используется класс. Файл
#include <iostream>
#include "foo.h"
int main(int iargc, char *iargv[]){
std::cout<<"helloworld"<<std::endl;
foo *test;
test = new foo[2];
delete test;
}
Заголовок:
#ifndef FOO_H
class foo{
public:
foo();
~foo();
};
#define FOO_H
#endif
foo.cpp
#include "foo.h"
foo::foo(){
};
foo::~foo(){
};
без ВЕЬЕТЕ, никаких проблем, если я удалю деструктор из файла заголовка и исходного кода, Я могу удалить тест указателя класса, но я не могу его удалить, тогда как я объявил деструктор, как это, без segfault.
Код неправильный, потому что он 'delete' вместо' delete [] ', но это не должно вызывать ошибку seg в минимальном коде, который вы отправили. Поэтому я думаю, что вы ничего не заметили о том, что вы тестировали. – JSF