Предположим, у меня есть структура и файл с двоичными представлениями этих структур, и я создам функцию / метод для доступа к этим двоичным данным, используя ifstream::read()
.
Вот пример структуры:
struct MyStruct {
int x; //Value interested in
int y; //Value interested in
int anotherInteger; //Not interested
double aDouble; //Not interested
}
Как мне сделать функцию (я буду называть ее здесь readData): не использовать указатели при чтении или, если необходимо использовать указатели, куда бы я поместил правильное удаление?
Пока что соответствующая часть моих readData выглядит так:
void readData(int position, int &returnX, int &returnY) {
ifstream inFile("binaryFile.dat",ios::binary);
MyStruct *st = new MyStruct[1];
inFile.seekg(sizeof(MyStruct)*pos);
inFile.read((char*) st, sizeof(MyStruct));
returnX = st[0].x;
returnY = st[0].y;
//delete [] st goes here?
}
Я пытался раскомментировать часть удаления, но получаю ошибку выделения, возможно, потому что значения x и y указывают на то, что больше не существует.
Есть идеи, как решить эту проблему?