Cfile的小BUG

//  	CFile file;
//  	if(!file.Open(szFilePath, CFile::modeRead | CFile::typeBinary))
//  	{
//  		AfxMessageBox(_T("打开bin文件失败!"));
//  		return FALSE;
//  	}
//  
//  	file.SeekToEnd();
//  	m_nFileLength = (unsigned long)file.GetLength();
//  	m_pSzBinData = new unsigned char[m_nFileLength];
//  	file.SeekToBegin();
//  
//  	if (file.Read(m_pSzBinData, m_nFileLength) != m_nFileLength)
//  	{
//  		m_nFileLength = 0;
//  
//  		delete[] m_pSzBinData;
//  		m_pSzBinData = NULL;
//  
//  		file.Close();
//  		AfxMessageBox(_T("读取bin文件数据失败!"));
//  		return FALSE;
//  	}
//  	
// 	file.Close();

在上述代码中,m_pSzBinData定义是unsigned char *,  file.Read时,只能读取文件中的第一个字节,后面的内容读取不到.

但是当m_pSzBinData改为unsigned char m_pSzBinData[ ]时,读取内容是完整的.

不知道这是为什么?能有大神留言解答吗?

//2016.07.21日更新

读取没有出错,但是在断点时使用指针时只能看到第一个字节的内容.而数组区可以看到整个数组的内容.

 指针*,数组[ ]都指向数据首地址,但是[ ]指向的地址指针变量地址本身的后面 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值