在C ++中将二进制文件读入char数组

用户44
std::streampos size;
char * memblock;

std::ifstream input ("A.JPG", std::ios::in|std::ios::binary|std::ios::ate);

if (input.is_open())
{
    size = input.tellg();
    memblock = new char [size];
    input.seekg (0, std::ios::beg);
    input.read (memblock, size);
    input.close();

    std::cout << "[INPUT]the entire file content is in memory " << sizeof(memblock) << " \n";

}
delete[] memblock;

我想使用ifstream读取A.JPG(28KB)并将其保存到数组memblock中。但是,为什么变量大小等于28403时,memblock的大小却是4而不是28403?

谢谢你。

马克·波波维奇(Marko Popovic)

因为memblock是指针,所以sizeof运算符将求出指针变量的大小,即4个字节。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章