В настоящее время я использую двоичные файлы для быстрого доступа к пользовательским объектам, хранящимся в многомерных массивах, которые сохраняются в файл в виде массивов объектов.до сих пор чтение из файла не было слишком большой проблемой, так как я считывал массив в идентичный массив объектов в стеке.это выглядит примерно так:
Foo foo[5][10];
ifstream infile("foofile.dat",ios::in|ios::binary);
infile.read((char*)&foo, sizeof Foo);
Проблема, с которой я сейчас сталкиваюсь, заключается в том, что я все больше храню большие объемы данных и переполняю свой стек при создании массива локальных объектов.решение тогда, казалось бы, создало массив локальных объектов в куче, и я не уверен, как отформатировать его так, чтобы я мог приводить его непосредственно из char *.вот как я бы выделил в куче:
Foo (*foo)[1000] = new Foo [500][1000];
однако, похоже, это неправильный формат, если я хочу привести ко всему массиву.например, если я попытаюсь сделать следующее, это не сработает:
ifstream infile("foofile.dat",ios::in|ios::binary);
infile.read((char*)(*foo), (sizeof Foo * 500 * 1000)); //or below
infile.read((char*)(&foo), (sizeof Foo * 500 * 1000)); //or below
infile.read((char*)(foo), (sizeof Foo * 500 * 1000)); //or below
по сути, я понятия не имею, как структурировать это, используя массив, который я выделил в куче.Кто-нибудь может дать какие-нибудь указатели (хе)?
Большое спасибо, Джим