我正在编写一个程序,它必须创建一个文件,将其映射到内存,然后将二维数组写入它。我在查看文件时遇到问题。它充满了非预期值。我想,这个问题与铸造有关,但无法提出解决方案。所以,问题是,如何将双精度数组转换为 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;
}