c++,写文件地址冲突,请问怎么解决?
int KrSystem::WriteParameterSettingToFile()
{
GetParameterSettingToFile("../TestData/ParameterSetting.dat", &WriteBuffer[0]);
return 0;
}
int KrSystem::GetParameterSettingToFile(char* pFileName, unsigned char * pDataBuffer)
{
char * p = new char[512];
memset(p, 0, 512);
memcpy(p, pDataBuffer, 512);
ofstream fout;
fout.open(pFileName, ofstream::binary);
if (m_sfile == NULL)
{
m_sfile = new std::fstream;
m_sfile->open(pFileName, ios::binary | ios::out);
if (!m_sfile->good())
{
LOG4CPLUS_INFO(root, "设置参数文件打开失败");
printf("打开设置参数文件失败\n");
m_sfile->close();
delete m_sfile;
m_sfile = NULL;
return -1;
}
m_sfile->write(p, 512);
if (!m_sfile->good())
{
LOG4CPLUS_INFO(root, "写入设置参数数据失败");
printf("写入设置参数失败\n");
m_sfile->close();
delete m_sfile;
m_sfile = NULL;
delete[] pDataBuffer;
*pDataBuffer = NULL;
delete p;
*p = NULL;
return -1;
}
m_sfile->close();
delete m_sfile;
m_sfile = NULL;
}
delete p;
*p = NULL;
return 0;
}
代码如上。前台调用了KrSystem::WriteParameterSettingToFile(),代码走在m_sfile->open(pFileName, ios::binary | ios::out)就崩溃了,不知道什么原因,