double の配列を動的に割り当てるクラス v があります。Entries は、この配列の先頭へのポインタです。間隔を使用すると、エントリをスキップできます。たとえば、3 つおきのエントリのみを考慮したい場合、間隔は 3 になります。
double& v::operator[] (const int n) {
return entries[n*spacing];
}
この添字演算子はコンパイルされますが、ヒープが破損します。私の Web 検索に基づいて、Visual Studio は "entries[n*spacing]" の結果を一時的に格納し、一時的な参照を返していると思います。割り当て解除されたメモリへのこの参照に書き込もうとすると、ヒープの破損が発生します。
誰かが回避策のアイデアを持っていますか?