【求助】读取二进制文件,malloc定义出来的指针只能读出两个数据
由于要读取的二进制文件较大 64k的数组不够用 看了说可以用malloc函数 但是
用malloc定义出来的指针只能读出两个数据
而用数组读出来的temp却能读出64k的数据
求大神帮忙 看看是什么问题 谢谢~
#include<stdio.h>
#include <malloc.h>
#include <stdlib.h>
int main(){
/*定义读取文件名*/
const char * pFileName="d:\\ad01.bin";
const char * pFileName2="d:\\ad02.bin";
/*定义读取长度*/
// unsigned short temp[65536];
unsigned short *temp;
temp=(unsigned short *)malloc(1000);int bsize;
/*定义文件指针*/
FILE * pFile;
FILE *fpw;
/*以二进制方式打开文件用于输入*/
pFile=fopen(pFileName,"rb");
fpw=fopen(pFileName2,"wb");
/*判断打开文件成功与否*/
if ( NULL == pFile )
{ perror("打开文件失败");
return 0; }
/*以二进制方式读取文件*/
/*从一个文件流中读数据,读取count个元素,每个元素size字节.如果调用成功返回count. 返回实际读取size*count字节.如不成功,返回实际读取的元素个数*/
bsize = fread(temp,sizeof(unsigned char),sizeof(temp),pFile);
printf("%X\n",temp[0]);
//输出用户输入的数据
/*检验读文件是否成功*/
if ( ferror(pFile) )
{ perror("读取文件失败");
/*关闭文件后返回*/
fclose(pFile);
return 0; }
/*以二进制方式写入文件*/
fwrite(temp,1,bsize,fpw);
free(temp); //用malloc时匹配的
fclose(pFile);
fclose(fpw);
}