ファイルを作成し、それをメモリにマップしてから、double の 2 次元配列を書き込むプログラムを作成しています。ファイルを調べたときに問題が発生しました。期待しない値でいっぱいです。この問題はキャスティングに関連していると思いますが、解決策が思いつきません。それで、問題は、double の配列を char * に変換する方法です。誰かがこの問題を解決する手がかりを教えてくれることを願っています。
int main(int argc, char **argv)
{
HANDLE plik, mappedFile;
char *poi;
LPCWSTR fileName = L"plik.txt";
double tab[8][12];
createMatrix(tab); // here I fill the array with values
// creating file
// mapping the file
poi = (char *)MapViewOfFile(
mappedFile,
FILE_MAP_ALL_ACCESS,
0,
0,
0);
if (!poi)
{
puts("Can't allocate Memory!");
abort();
}
memcpy(poi,tab,96*sizeof(double));
UnmapViewOfFile((void*)poi);
CloseHandle(mappedFile);
CloseHandle(plik);
getchar();
return 0;
}