정적 데이터에 대한 포인터 배열을 갖고 싶습니다. 예를 들어C++ 함수에서 정적 double에 대한 포인터의 배열
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가 정적 double에 대한 포인터 배열이므로, 한 번은 함수 안에 할당되므로 모든 것이 범위를 벗어나면 잘 지워질 것입니다. 나는 어떻게 든 생각하지 않는다. 이것은 아마도 희망적인 사고이고 기억 누출로 이어질 것입니까?
아마 여기서 정적 C++ 벡터를 사용하는 것이 더 낫습니다. 일부 조건 (예 : cond 또는 부정의 조건과 같은 일부 조건이 충족되는 경우)이 충족 될 때 d에서 이전에 계산되고 저장된 데이터를 다시 사용하기 위해 여기서 정적을 사용하려고합니다. 희망이 어떤 아이디어에 대한 사전에 의미와 감사합니다.
결코 할당이 해제되지는 않지만 어쨌든 프로세스의 수명이 지속되므로 누가 신경을 씁니까? – ildjarn
@ildjarn : 누군가 나처럼 생각하면 다행입니다.하지만 여전히, 저의 어떤 구석은 조금 걱정됩니다. 오 잘. –