关于Xcode中"signal SIGABRT"调试崩溃的问题

今天用xcode编写c++程序的时候,蹦出来了个“signal SIGABRT”。其实以前也老是出现相似问题。

具体情况是出现在某行或者类的定义中

class node{ //signal SIGABRT
    XXXXXXXXX;
    XXXXXXXXX;
};
此类问题大多是之前定义了一个“非释放类型”的对象,后面却又将其释放,因此计算机找不到可释放的对象。
//例如:
node *p;
xxxxxxxx;
xxxxxxxx;
xxxxxxxx;
delete p;

这样就会报错,需要注意的是,此种报错是概率性的,有时不会出现,但是出现的危害会很大。我程序不出现报错的时候内存占用情况是每秒好几百兆,很快就几个G了,当内存占用满,你只能强制关机了,有可能以前的代码丢失,很糟糕。


上述代码可以改成:

node *p = new node;
xxxxxxxxx;
xxxxxxxxx;
xxxxxxxxx;
delete p;

这样就不会出现错误了。



你可能感兴趣的:(c++写简单的算法)