c++里面怎样计算char*长度啊

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