У меня есть класс v, который динамически распределяет массив значений типа double. Записи - это указатель на начало этого массива. Интервал позволяет мне пропускать записи, например, если бы я хотел учесть только каждую третью запись, интервал был бы равен 3.
double& v::operator[] (const int n) {
return entries[n*spacing];
}
Этот оператор индексации компилируется, но вызывает повреждение кучи. Основываясь на моих поисках в Интернете, я думаю, что Visual Studio сохраняет результат «records [n * spacing]» во временном хранилище, а затем возвращает ссылку на временный. Повреждение кучи происходит, когда я пытаюсь записать в эту ссылку освобожденную память.
У кого-нибудь есть идеи для обхода?