| Код | size_t Height = 1000, Width = 1000; float G[] = new float[Height*Width]; //доступ по индексам for (int ix = 0; ix != Width; ix++) { for (int iy = 0; iy != Height; iy++) { G[ix + iy*Width] = .... } } //такой способ работы с 2х мерным массивом намного быстрее
//сохранение в дамп HANDLE hFile = CreateFile( filename, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, 0, NULL ); DWORD bytes = 0; WriteFile(hFile, (BYTE*)G, (DWORD)(sizeof(float)*Height*Width), &bytes, NULL );//Сдесь происходит запись в двоичный файл всего массива //или //форматированный вывод char buffer[4096]; for (int ix = 0; ix != Width; ix++) { for (int iy = 0; iy != Height; iy++) { _snprintf(buffer, 4096, "%f, ", G[ix + iy*Width]); WriteFile(hFile, buffer, strlen(buffer), &bytes, NULL); } }
|
а чтение зависит от формата файла в принципе, нужно сначала узнать размер массива, потом сделать чтение: В случае текстового файла -
| Код | for (int ix = 0; ix != Width; ix++) { for (int iy = 0; iy != Height; iy++) { fscan(outfile, "%f", &(G[ix + iy*Width]) ); } }
|
|