C++析构函数分段错误

Moh*_* Li -1 c++

我有一个关于c ++和析构函数的新手问题.如果我已经声明了一个destoructor,我删除一个类指针后,我的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;

}
Run Code Online (Sandbox Code Playgroud)

头文件:

#ifndef FOO_H
class foo{
    public:
        foo();
        ~foo();
};
#define FOO_H
#endif
Run Code Online (Sandbox Code Playgroud)

Foo.cpp中

#include "foo.h"

foo::foo(){
};

foo::~foo(){
};
Run Code Online (Sandbox Code Playgroud)

没有删除语句,没有任何问题,如果我从头文件和源代码中删除析构函数,我可以删除类指针测试,但我不能删除它,而我声明析构函数这样没有段错误.

Pao*_*o M 5

你应该delete[] test以数组形式.