Array initialisieren: Arraygröße abhängig von Wert einer Variablen. Wie gehts?
-
Hi!
Ich muss ein Array mit einer von einer Variablen abhängigen Anzahl von Elementen initialisieren.
Einiges habe ich schon versucht, zuletzt mit "switch".
Leider alles vergebens.Bei switch kommt folgende compiler-Fehlermeldung:
'Input': Neudefinition; unterschiedliche Feldindizes
switch(Count) { case 0: throw gcnew Exception("Fehler!"); break; case 1: int Input[3]; break; case 2: int Input[5]; break; }
Wäre nett, wenn ihr mir helfen könntet!
Gruß
-
Hi, kennst du schon CArray?
-
Versuch's mal so ...
switch(Count) { case 0: { throw gcnew Exception("Fehler!"); break; } case 1: { int Input[3]; break; } case 2: { int Input[5]; break; } }
wenn man variablen in einem case deklariert meckert der compiler immer rum. Ich glaube das liegt daran, dass mit so einem Syntax auch Sprungmarken arbeiten ... also GOTO usw.
-
Der Compiler ist mit den Klammern zufrieden, danke.
Leider kann ich aber das array später nicht nutzen:
error C2065: 'Input': nichtdeklarierter Bezeichner
-
du meinst wahrscheinlich sowas:
int main() { int count = 10; //oder irgendein anderer Wert int* array = new int[count]; //legt int Array mit "cout" Elementen an //... delete[] array; //vor dem Verlassen der Funktion wo du das Array angelegt hast //delete[] nicht vergessen! return 0; }
CArray ist aber besser.
Edit:
eider kann ich aber das array später nicht nutzen:
Das liegt daran das du das Array im Case Block anlegst und es beim verlassen des Case Blockes wieder glöscht wird.
schau mal in die C++ FAQ
-
Dann gehts so nicht, danke.
Wenn ich es nicht anders gelöst bekomme gucke ich mal nach dem CArray.
-
Du machst C++/CLI und solltest damit die Finger von CArray weglassen, da Du dadurch nur durcheinander kommst...
Verwende:
int cnt = 10; array<int> ^a = gcnew array<int>(cnt);
-
Dieser Thread wurde von Moderator/in estartu aus dem Forum MFC (Visual C++) in das Forum C++/CLI mit .NET verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Jochen Kalmbach schrieb:
Du machst C++/CLI und solltest damit die Finger von CArray weglassen, da Du dadurch nur durcheinander kommst...
Danke Jochen!
-
Habs mit CLI gelöst, danke!