c++动态分配内存然后读取文件出错

ifstream fp(filepath, ios::binary);
unsigned char *a = (unsigned char*)malloc(sizeof(unsigned char)*800);
while (fp.read((char*)&a, sizeof(char) * 800)) {
//已省略
}

运行到while就报错

img

img


试了new和malloc都不行.
正常写

unsigned char a[800] ={0};

可以运行

&a 换成 a