subject_64322.htm
来自「vc」· HTM 代码 · 共 12 行
HTM
12 行
<p>
序号:64322 发表者:Rikcuo Akira 发表日期:2003-12-10 10:17:30
<br>主题:malloc & free
<br>内容:malloc & free<BR><BR>strcpy(str,pSrc); //加此行<BR>if (pSrc!=NULL) free(pSrc); 就會出錯 Go (Win32 Debug),Execute Program<BR>到底strcpy與free有何關聯?<BR><BR>void CMyAdvCRCDlg::OnButtonOpenfile() <BR>{<BR> // TODO: Add your control notification handler code here<BR> static char BASED_CODE szFilter[] = "Log Files (*.log)|*.log|Text Files (*.txt)|*.txt|Data Files (*.log;*.txt)|*.log; *.txt|All Files (*.*)|*.*||";<BR> <BR> char* filename=NULL; <BR><BR> CFileDialog dlg(TRUE,"log","*.log",NULL,szFilter);<BR><BR> if(dlg.DoModal()==IDOK)<BR> {<BR> CString strLogFilename=dlg.GetPathName();<BR><BR> filename=strLogFilename.GetBuffer(0);<BR><BR> m_edit_filename.SetWindowText(filename);<BR><BR> //檢查是否有改32-Digit Code<BR><BR> // open file<BR> FILE * fp=NULL;<BR> if ((fp=fopen(filename,"rb"))==NULL)<BR> {<BR> return;<BR> }<BR><BR> unsigned long len; <BR> char *pSrc=NULL;<BR> len = _filelength( _fileno( fp ) );<BR><BR> if (len<32)<BR> {<BR> MessageBox("檔案長度小於32","Error",MB_OK|MB_ICONERROR);<BR> return;<BR> }<BR><BR> pSrc = (char* )malloc( len );<BR> if( pSrc == NULL )<BR> return;<BR><BR> fread(pSrc,len,1,fp);<BR> pSrc += (len-32);<BR><BR> char str[32+1];<BR> <BR> strcpy(str,pSrc); //加此行就會出錯 Go (Win32 Debug)<BR> str[32]='\0';<BR> <BR> if (pSrc!=NULL) free(pSrc);<BR> if (fp!=NULL) fclose(fp);<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:红苹果 回复日期:2003-12-10 18:06:39
<br>内容:<BR>动态分配的内存地址不能改变它,否则系统就不能释放它了。<BR><BR> pSrc = (char* )malloc( len ); <BR> if( pSrc == NULL )<BR> return;<BR><BR> fread(pSrc,len,1,fp);<BR> // pSrc += (len-32); // <=====要改变pSrc,就要先保护它的值,错出在这里<BR> *(pSrc+len)=0; // <========<BR><BR> char str[32+1];<BR> <BR> strcpy(str,pSrc); //加此行就會出錯 Go (Win32 Debug)<BR> // str[32]='\0'; //<=========<BR> <BR> if (pSrc!=NULL) free(pSrc);<BR> if (fp!=NULL) fclose(fp);<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?