C ++内存泄漏与否
c++ memory leak or not
我有代码:
class foo
{
public:
bar(const QString& s){}
.....
};
int main()
{
.....
foo f;
for(int i = 0; i < 100; i++)
f.bar(QString("%1").arg(i));
....
return 0;
}
我在字符串"f(QString("一些字符串文本?"(;"上有内存泄漏吗?
另一个例子
class foo
{
QUdpSocket socket;
public:
foo();
void send_msq();
};
foo::foo(){
socket.bind(QHostAddress("192.168.20.1"),50501);
}
void send_msq()
{
socket.writeDatagram(...);
}
我对字符串"socket.bind(QHostAddress("192.168.20.1"(,50501(;"有任何问题?
没有内存泄漏。QString
类管理自己的内存(假设您正在谈论此QString
。
您正在创建该类的临时,当对foo::bar
调用返回时,该临时类将被销毁。此时,析构函数将运行,释放QString
类持有的任何内存。
通常,只要您的资源由类管理,并且您没有使用 new
分配它们,就不必担心释放资源,因为析构函数将在类实例超出范围时运行。
当您使用 new
或使用其生存期不受类管理的资源时(例如 malloc
返回的内存或 fopen
返回的文件(与 fstream
相反,它是一个类并在销毁时进行清理((,这时您需要确保清理它。
顺便说一下,最好的方法是将这些资源包装在一个类中,该类通过构造函数和析构函数管理资源的生存期,然后使用该类而不是"原始"资源;这称为资源获取是初始化模式。
相关文章:
- C++功能泄漏内存,我是C++新手,不确定如何解决
- 我的堆栈弹出式磁带的实现是否泄漏内存?
- 将 c++ 向量转换为字符 ** 而不会泄漏内存
- 析构函数 C++ 使泄漏内存
- 构造函数对象赋值是否泄漏内存
- corba :: orb_init泄漏内存
- Gmock泄漏内存
- 如何在不泄漏内存的情况下删除链接列表
- Visual C ODBC关闭记录集泄漏内存
- 为什么泄漏内存比在动态数组上执行 delete[] 慢
- OpenGL正在泄漏内存.哪个对象未释放
- 可以std ::退出泄漏内存
- uiautomation findall泄漏内存
- 为什么在此OpenCL代码中泄漏内存,为什么要泄漏内存
- pthread在完成后会泄漏内存
- win32 标准::线程泄漏内存
- 返回指向同一变量的指针是否会泄漏内存
- 使用clectType(new any_type())可能会泄漏内存泄漏
- Windows开发:如何确定我的应用程序是否正在泄漏内存
- WinHttp打开泄漏内存