char* getImgData(const char* imageName){
FILE* fp=NULL;
fp=fopen(imageName,"rb");
fseek(fp,0L,SEEK_END);
int imageLength=ftell(fp);
fseek(fp,0L,SEEK_SET);
char buffer[imageLength];
fread(buffer,sizeof(char),imageLength,fp);
return buffer;
}
这样一个方法,好像读取的图片二进制数据,返回的char*,得到后只有一个数组指针地址,请问只有这个指针能计算数组长度吗?
可以啊,用strlen函数计算
fread(buffer,sizeof(char),imageLength,fp);这一句改成:
imageLength = fread(buffer,sizeof(char),imageLength,fp);
imageLength就是实际取到的长度。
int imageLength=ftell(fp);这句话中,imageLength是整个文件的大小,有时候会比fread函数返回的值要大一些,所以用imageLength接收一下fread函数的返回值,得到实际读取的字节数。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632