Importer:Error:WasEmpty
-
Hallo zusammen,
ich habe eine Frage zu Arrays, die innerhalb eines structs definiert werden:
Ich habe ein "großes" struct ("param"), welches mehrere Untergruppen ("a" und "b") enthalten soll. In diesen Untergruppen befinden sich auch einige Arrays, deren Größe abhängig von konstanten Werten ist, die ebenfalls in diesem struct stehen. Die Initialisierung von a2[a1] in struct "a" funktioniert. Allerdings bekomme ich in struct "b" die Fehlermeldung:
"error C2144: Syntaxfehler: 'param' sollte auf ']' folgen"#include <iostream> #include <cstdlib> using namespace std; struct param { struct a { static const int a1 = 10; static const int a2[a1]; }; struct b { static const int b1[param.a.a1][param.a.a1]; }; }; int main(void) { return 0; }Was mache ich falsch und wie funktionierts richtig?
Viele Grüße
Timm
-
static const int b1[param::a::a1][param::a::a1];Irgendwie sieht das aber sehr merkwürdig aus. Wozu soll das gut sein?
-
In meinem Programm werden eine Menge Parameter benötigt. Und ich will die einfach irgendwie zusammen packen, damits übersichtlicher wird und die Übergabe an Funktionen leichter wird..
Und da war meine erste Idee, das mit einem Struct zu versuchen.Einige Parameter sind in Arrays oder Matrizen angelegt, deren Größe wiederum von anderen Parametern abhängt:
Zum Beispiel habe ich den Parameterint a1 = 10;Und daraus folgt, dass die Matrix b1 folgendermaßen auszusehen hat:
int b1[10][10];Anschließend will ich b1 natürlich noch Werte zuweisen. Am liebsten würd ich das auch schon direkt in dem struct machen, aber dazu hab ich schon einige Foren-Beiträge gelesen, die behaupten, dass das nicht funktioniert.
-
Aber wieso ist das Array denn auch statisch?
-
achso, das kannst du dir auch wegdenken.. ich hab nur ein paar Sachen ausprobiert, unter anderem das static davorzusetzen, aber weiß nicht wirklich was das bewirkt.. hat zumindest mein problem nicht gelöst
-
timm311 schrieb:
ich hab nur ein paar Sachen ausprobiert, unter anderem das static davorzusetzen, aber weiß nicht wirklich was das bewirkt.. hat zumindest mein problem nicht gelöst
Muaha.
Kannste auch gleich so lange würfeln bis ein Programm rauskommt das das macht was du willst
-
Hallo Timm,
nimm statt des struct besser einen Namensbereich
namespace a { const int a1 = 10; } struct b { int b1[a::a1][a::a1]; };(kannst natürlich auch 'struct b' innerhalb von 'namespace a' deklarieren)