C++内存泄露(Memory Leak Faults)之高级篇
如果在构造函数中有申请内存的操作,且在其他程序中有两个对象直接或间接的赋值操作,如果没有对“=”运算符进行重载定义,则会产生两次释放同一次内存操作的错误。该错误为第7类的内存错误。
Demo代码如下:
运行结果如下:

但把,程序开头部分的#define TEST你运行结果会发现,统一地址的空间被释放了两次。从而发生内存泄露。
本文通过一个具体的C++代码示例,展示了当构造函数中包含动态内存分配,并且未正确实现赋值运算符重载时,如何导致同一块内存被释放两次的问题,即第7类内存错误。
如果在构造函数中有申请内存的操作,且在其他程序中有两个对象直接或间接的赋值操作,如果没有对“=”运算符进行重载定义,则会产生两次释放同一次内存操作的错误。该错误为第7类的内存错误。
Demo代码如下:
运行结果如下:

但把,程序开头部分的#define TEST你运行结果会发现,统一地址的空间被释放了两次。从而发生内存泄露。
1838

被折叠的 条评论
为什么被折叠?