静的データへのポインターの配列が必要です。例えば
void func(...) {
...
static int mysize = initial_size;
static double* d[3] = {new double[mysize], new double[mysize], new double[mysize]};
for(int i=0; i < 3; ++i) {
if(cond) {
//-re-allocate d if necessary.
use d here;
}
else {
use d here; //-since d is static; it persists and so this is justified?
}
}
//-Can I get away with not deleting d here??
}
私の推論は、d は static double へのポインターの配列であるためです。関数内で一度割り当てられるため、すべてが範囲外になると削除されることを願っていますか? 私はどういうわけかそうではないと思います。これはおそらく希望的観測であり、メモリリークにつながりますか?
おそらく、ここで静的 C++ ベクトルを使用したほうがよいでしょうか? ここでは、いくつかの条件が満たされた場合 (たとえば、cond またはその否定などの条件が満たされた場合) に、以前に計算され保存されたデータを d に再利用するために、静的を使用したいと考えています。これが理にかなっていることを願っています。どんなアイデアでも事前に感謝します。