| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 433 人关注过本帖
标题:【求助】读取二进制文件,malloc定义出来的指针只能读出两个数据
只看楼主 加入收藏
ruoruchujian
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-4-13
结帖率:0
收藏
已结贴  问题点数:10 回复次数:1 
【求助】读取二进制文件,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);

}
搜索更多相关主题的帖子: include 二进制 
2013-04-13 13:19
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:10 
1、malloc定义出来的指针?
malloc只会返回一个指针。
2、fread(temp,sizeof(unsigned char),sizeof(temp),pFile);
sizeof(temp)会返回一个什么楼主知道吗?

My life is brilliant
2013-04-13 14:06
快速回复:【求助】读取二进制文件,malloc定义出来的指针只能读出两个数据
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023634 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved