Ich versuche, ein zweidimensionales Array mit einer konstanten Ganzzahl als die Grenzen zu deklarieren, aber dieser Fehler besteht immer noch.C++: Array-Größe in new-Ausdruck muss konstant sein
template <class Type>
matrixType<Type>::matrixType(){
h = maxSize;
w = maxSize;
matrix = new Type[maxSize][maxSize];
defaultFill();
}
Matrix wird wie erklärt:
Type* matrix;
und maxSize deklariert als:
const int maxSize = 4;
Erwägen mit nur 'std :: VECTOR' (oder' std :: array' wenn Größe bei der Kompilierung festgelegt ist). Vergessen Sie alte C-artige Arrays. –
Wie, wann und wo wird 'maxSize' deklariert und definiert? Können Sie uns ein [minimales, vollständiges und verifizierbares Beispiel] (http://stackoverflow.com/help/mcve) zeigen? –
In C sind 2D-Arrays Doppelzeiger, d.h. Zeiger von Zeigern. Sie müssen zuerst eine Liste von Zeigern zuweisen und dann für jeden Zeiger in der Zeigerliste eine Liste von Typ zuweisen. – jodag