21.void Widget::processPendingDatagram()
22.{
23. qint64 num = receiver->pendingDatagramSize();
24. cout << "receive size = " << num << endl;
25.
26. QByteArray buffer;
27. buffer.resize(num);
28. receiver->readDatagram((char *)buffer.data(),num);
29.
30. QFile file("test_save.jpeg");
31. if (!file.open(QIODevice::WriteOnly))
32. return;
33. file.write(buffer);
34. file.close();
35. img = new QImage("test_save.jpeg");
36. update();
37.
38.}
在网上看到这段代码,是一个视频传输的程序,这个是客户端接受的程序,客户端执行,刚开始还没有问题,执行了一段时间后会死机,报出了一个std::bad_alloc错误,请问,这段程序哪里会产生内存泄漏呀,QT的东西是不是函数结束后自动销毁呀
谢谢了
------解决方案--------------------
35行申请内存后没释放,QT不是函数结束自动销毁,是当new的时候指定了父对象后,当删除父对象时会将该子对象删除。