array mit int produziert Compiler Fehler
-
hallo zusammen,
kann mir jemand erklären, wieso mein VC++ beim folgendem Code nen Fehler ausgibt?[code] //m_Range ist meine MemberVar von Typ int int data_buffer[m_Range]; int *value_array[m_Range]; for (int i=0; i== m_Range ;i++) {//}[/code]
daraufhin bekomme icherror C2057: Konstanter Ausdruck erwartet
error C2466: Reservierung eines Feldes der konstanten Groesse 0 nicht moeglich
error C2133: 'data_buffer' : Unbekannte Groesse
error C2057: Konstanter Ausdruck erwartet
error C2466: Reservierung eines Feldes der konstanten Groesse 0 nicht moeglich
error C2133: 'value_array' : Unbekannte Groessevom Compiler zurück.
kann es mir nicht erklären, selbst in MSDN steht ein Beispiel:char szPath[_MAX_PATH]; // Array of type char. char *pszPath = szPath; // Equals &szPath[0].die _MAX_PATH ist dort CONST , meine m_Range will ich aber dynamisch halten und daraus den Array erstellen.
hab schon mit(const int) m_Range versucht
hat jemand Idee?
-
Das geht nicht... Ein Array auf dem Stack muss zur Compile-Zeit eine bekannte Größe haben. Du brauchst eine dynamische Speicherverwaltung auf dem Heap.
int *array = new int[size]; ... delete array;Gruß
-
danke.
ich dachte, der Weg über new.. delete läßt sich umgehen.
So klappt aber einwandfrei

-

delete[] array;
-
Ops jo stimmt natürlich

Gruß
-
Hallo
Du kannst new und delete vermeiden indem du std::vector benutzt.
chrische