我喜欢对静态数据有一系列指示器。 例如,
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 是一系列静态双倍的指针; 它被分配到函数内部一次, 所以当一切超出范围时, 它有望被删除吗? 我不知怎么地认为不是。 这也许是一厢情愿的想法,并导致记忆泄漏?
或许我最好在这里使用静态的 C++ 矢量 。 我想在这里使用静态的 C++ 矢量 。 我想在这里使用静态的数据,以便在满足某些条件(例如,如果满足了某些条件,比如,如果满足了某些条件,比如控制或否定等条件)时,在 d 中重新使用先前计算和储存的数据。 希望这能让任何想法都有意义并提前感谢。