这段代码是否存在内存或资源泄露
我写了一个函数,从磁盘上读入一个文本文件(1.txt)到内存中。
我想请教大家,这段代码是否存在内存或资源泄露?谢谢!
代码如下:
#include <fstream>
using namespace std;
#include <iostream>
#include <sstream>
//从磁盘上读入一个纯文本文件(1.txt)到内存
void fun1()
{
ostringstream oss;
string str;
ifstream ifs( "C:\\1.txt ");//打开文件
if( ifs )
{
oss < < ifs.rdbuf();
str = oss.str();
char* pDoc = const_cast <char*> (str.c_str());
ifs.close();//关闭文件
}
}
[解决办法]
正常, 没有泄漏 ·····
[解决办法]
没错,也没泄漏,就是效率比较低。可以直接从ifs读入str。
ifstream ifs( "C:\\1.txt ");
string str((istreambuf_iterator <char> (ifs)), istreambuf_iterator <char> (ifs));
ifs.close();