c++ ifstream读取数据放入数组,数据是错误的

我正在使用ifstream读取外部文件,代码如下:

#include<fstream>  
#include<iostream>  
#include<string>  

float image_raw[3][224][224];

int main()
{
    
    std::ifstream ifs_image_raw("img1.txt", std::ios::in);
    ifs_image_raw.read((char*)(**image_raw), 3*224*224*sizeof(float));
    ifs_image_raw.close();

    for(int i = 0; i < 3; i++){
        for(int j = 0; j < 224; j++){
            for(int k = 0; k < 224; k++){
                std::cout << image_raw[i][j][k] << std::endl;
            }
        }
    }
    
}

g++编译成功且可以运行,但是打印出来的数是错误的,已检查文件路径和内容没有问题,用FILE*加fscanf的方式读取正确,请问这是什么原因?