我想要一个指向静态数据的指针数组。例如
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++ 向量?我想在这里使用静态,以便在满足某些条件时(例如,如果满足某些条件,例如 cond 或其否定)重新使用 d 中先前计算和存储的数据。希望这是有道理的,并提前感谢任何想法。