Я не могу удалить динамически сгенерированные массивы. Вот как я их создаю:
template <typename T>
T **AllocateDynamic2DArray(int nRows, int nCols){
T **dynamicArray;
dynamicArray = new T*[nRows];
for( int i = 0 ; i < nRows ; i++ ){
dynamicArray[i] = new T[nCols];
for ( int j=0; j<nCols;j++){
dynamicArray[i][j]= 0;
}
}
return dynamicArray;
}
И я инициализирую 2D-массив, используя:
long double** h = AllocateDynamic2DArray<long double>(KrylovDim+1,KrylovDim);
Я не могу удалить это. Вот варианты, которые я пробовал:
delete[] h;
и выдает ошибку: «невозможно удалить объекты, которые не являются указателями», когда я применяю это:
for (int qq=0; qq < KrylovDim+1; qq++){
for (int ww=0; ww < KrylovDim; ww++){
delete [] h[qq][ww];
}
delete [] h[qq];
}
Есть ли способ для чистого удаления? Я использую Visual Studio 2010, если это поможет.