对于基本数据类型 malloc free 和 new delete 的效果一样,有一点不同
free (p); delete p
free 不改变p的值,delete 改变p的值,指向了一个特殊位置p=0X08123;
因此为了避免迷途指针,释放的指针应设定为nullptr;
malloc free 对于复杂数据类型class struct 他们不会调用构造和析构函数。从C过来的函数老。会造成内存泄露。
new delete 会调用构造和析构函数。
对于基本数据类型 malloc free 和 new delete 的效果一样,有一点不同
free (p); delete p
free 不改变p的值,delete 改变p的值,指向了一个特殊位置p=0X08123;
因此为了避免迷途指针,释放的指针应设定为nullptr;
malloc free 对于复杂数据类型class struct 他们不会调用构造和析构函数。从C过来的函数老。会造成内存泄露。
new delete 会调用构造和析构函数。