内存分配问题,常规使用malloc与free,但是,报错1011行的断言,dbgheap.c,求解决

if (sourcefile.Open(filename,CFile::typeBinary | CFile::modeCreate | CFile::modeNoTruncate | CFile::shareDenyWrite,NULL))
{
CFileStatus status;
CFile::GetStatus(filename,status);
lsizeoffile = (status.m_size)*5;
BYTE *pmemory;
pmemory = (LPBYTE)malloc(lsizeoffile);
if (pmemory == NULL)
{
AfxMessageBox("内存分配失败!");
return;
}
sourcefile.Read(pmemory,lsizeoffile);
sourcefile.Close();

CString exchangestr = HexstrtoASCII(pmemory,0,lsizeoffile,TRUE);
……………………………………
……………………………………
free(pmemory);
pmemory = NULL;
这个“MFC”功能是读一个二进制文件内容进分配的空间,然后写进TXT文件,然后打开能看到数据是字符来的,这里只有分配空间的代码。

第1个回答  2012-04-10
不知道你是哪行错了:

BYTE *pmemory;
pmemory = (LPBYTE)malloc(lsizeoffile);
这里面貌似要类型一致 指针一致
BYTE *pmemory;
pmemory = (BYTE *)malloc(lsizeoffile);本回答被提问者采纳
相似回答