我有一个函数可以将二进制文件作为 void * 类型读入内存。文件头中的信息指示所需的内存量和实际数据类型(以每个数字的字节数为单位 - 例如,如果应该将其解释为“长”,则为 8。
我的问题是,main 不知道所需的数据类型或内存。所以我这样调用函数:
long myfread(char *infile, void **tempdata,*datasize)
char *infile="data.bin"; // name of the input file
void *tempdata=NULL; // where the data will be stored, initially
long n; // total numbers read, returned by the function
size_t datasize; // modified appropriately by the function
n = myfread(infile,&tempdata,&datasize);
到目前为止一切顺利 - main 可以读取“tempdata”中的字节 - 但不能读取(比如说)整数或浮点数。我的问题是,有没有一种简单的方法可以重铸 tempdata 来实现这一点?