バイナリ ファイルを void * 型としてメモリに読み込む関数があります。ファイル ヘッダーの情報は、必要なメモリの量と実際のデータ型 (数値ごとのバイト数 - たとえば、「long」と解釈する必要がある場合は 8) を示します。
私の問題は、メインが必要なデータ型またはメモリを認識していないことです。したがって、次のように関数を呼び出します。
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);
これまでのところ、メインは「tempdata」のバイトを読み取ることができますが、(たとえば)整数や浮動小数点数としては読み取れません。私の質問は、これを可能にするためにtempdataを再キャストする簡単な方法はありますか?