求助:用指针读取txt程序错误,First-Chance exception

来源:百度知道 编辑:UC知道 时间:2024/05/26 13:22:04
void CSpectrumprocessView::OnDatatoBmp()
{
HANDLE hFile;//加关键字handle
CString str;

/****************采集参考臂数据****************/
str="ck.txt";

hFile=CreateFile //打开文本文件
(str,
GENERIC_READ,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
MessageBox(TEXT("Could not open file: ck.txt"));
} // process error自动弹出对话框
SetFilePointer(hFile,0,NULL,FILE_BEGIN); //DWORD nBytesToRead,nBytesRead;

nBytesToRead=GetFileSize(hFile,NULL); //得到文件长度成功!

inBuffer=new char[nBytesToRead];

ReadFile(hFile,inBuffer,nBytesToRead,&nBytesRead,NULL);

double* ckBuffer=new double[400]; //ck样品数据char型共59372个

i=0;
k=0;
for(;k<400;)
{
char temp[8]; //暂存char型数组以转换为double
if(*inBuffer==9) //debug发现tab键对应值为9,目的是提取强度
{
i++;
if(i>1624&&i<

要说delete也应该这样使用吧:
if(inBuffer)
delete [] inBuffer; //(这里你是一个数组的空间啊)

另外ckBuffer你好像也没释放吧

还有希望你数组不要越界就好(前面代码我没仔细看)。