下面的程序是为了创建一个.txt文件,但是运行后却显示内存溢出...
请各位高手看看那里错了吧小弟感激不尽... CFileDialog cFd(FALSE);
CFile file; CString FileName;
if (IDOK==cFd.DoModal())
{
FileName=cFd.GetFileName();
UpdateData(FALSE);
} OnInitialUpdate(); if(file.Open(FileName,CFile::modeCreate | CFile::modeReadWrite|CFile::modeNoTruncate))
{
CString str,tempX,tempY,temp;
for(int i=0;i <LineCount;i++)
{
tempX.Format(_T("%d"),points[i].x);
tempY.Format(_T("%d"),points[i].y);
temp=tempX+" "+tempY+"\n";
str+=temp;
} const TCHAR* sz = T2CW(str);
int iLen = _tcslen(sz);
char *sz2=new char; WideCharToMultiByte(CP_ACP, 0, sz, -1, sz2, iLen, NULL, NULL); file.Seek(0,CFile::end);
file.Write(sz2,iLen);
file.Close();
delete sz2;
}
请各位高手看看那里错了吧小弟感激不尽... CFileDialog cFd(FALSE);
CFile file; CString FileName;
if (IDOK==cFd.DoModal())
{
FileName=cFd.GetFileName();
UpdateData(FALSE);
} OnInitialUpdate(); if(file.Open(FileName,CFile::modeCreate | CFile::modeReadWrite|CFile::modeNoTruncate))
{
CString str,tempX,tempY,temp;
for(int i=0;i <LineCount;i++)
{
tempX.Format(_T("%d"),points[i].x);
tempY.Format(_T("%d"),points[i].y);
temp=tempX+" "+tempY+"\n";
str+=temp;
} const TCHAR* sz = T2CW(str);
int iLen = _tcslen(sz);
char *sz2=new char; WideCharToMultiByte(CP_ACP, 0, sz, -1, sz2, iLen, NULL, NULL); file.Seek(0,CFile::end);
file.Write(sz2,iLen);
file.Close();
delete sz2;
}
解决方案 »
- OnOk OnCancel OnClose OnDestroy DestroyWindow?这些消息和函数的关系?
- 为什么还没画线??
- STA和MTA线程模式的区别,大家讨论下。
- 请问哪位兄台有Fourier-Mellin(傅立叶-梅林)变换的算法或源代码?
- 菜鸟来提问了~vs2005中导入lib
- Raw data file 读取问题?
- 关于IE安全设置影响ActiveX控件下载和运行的问题,大家进来看看,请高手给些解决办法。
- 在做数据库程序时,如果用户没有安装JET3.0驱动怎么做?能不能动态的在代码中为用户来安装JET驱动?是不是要写注册表,在那里写?
- 急急急!!!有谁知道哪里能找到AE和Premier的插件的SDK及文档!!
- 请问怎么样把这些控件变成透明的,就是比如edit,除了能看到上面的文本外,还能看到背景上是我在窗口上画的东西
- 寻求帮助
- VC++提问:在ClassView中CMainFrame类突然消失了,怎么让它快速显示出来?
char *sz2=new char;
char *sz2=new char [XXX];
...
delete [] sz2;
char *sz2=new char[iLen]
CFile file; CString FileName;
if (IDOK==cFd.DoModal())
{
FileName=cFd.GetFileName();
UpdateData(FALSE);
} OnInitialUpdate(); if(file.Open(FileName,CFile::modeCreate | CFile::modeReadWrite|CFile::modeNoTruncate))
{
CString str,temp;
for(int i=0;i <LineCount;i++)
{
temp.Format(_T("%d %d\r\n"),points[i].x,points[i].y);
str+=temp;
} int iLen = (str.GetLength()+1)*sizeof(TCHAR);//...char *sz2=NULL;
#ifdef UNICODE
sz2=new char[iLen];
/*iLen=*/WideCharToMultiByte(CP_ACP, 0, str, -1, sz2, iLen, NULL, NULL);
#else
sz2=(LPSTR)str;
#endiffile.Seek(0,CFile::end);
file.Write(sz2,strlen(sz2)/*iLen*/);
file.Close();#ifdef UNICODE
if(sz2!=NULL)
{
delete[] sz2;
sz2=NULL;
}
#endif
}
怎么不干脆char *sz2 = T2A(str);
但如果str过长的话,会栈溢出