2-dim. array und dyn. struct [SOLVED]
-
hallihallo
wieder mal eine frage:
dieses problem ist schon öfter aufgetaucht, aber ein identisches problem konnte ich nicht finden....
ich möchte es aus einer funktion ein 2-dim array zurückgeben. da man keine arrays zurückgeben kann, wollte ich das mit einem struct erledigen.
typedef struct { char ct[][]; } packages;
natürlich lässt sich das nicht compilen, weil [][] keine gültige initialisierung ist. ich weiß die größe des arrays erst im programm. gibts dafür eine lösung, wie ich das "runtime" zuweisen kann?
thx in advance
-
char **packages; .. packages = (char **) malloc (sizeof(char*) * X); /* Anzahl der Reihen*/ for (i = 0; i < X; i++) { packages[i] = (char *) malloc (sizeof(char) * Y); /* Anzahl der Spalten */ } ...
Allerdings ginde auch ein
char *packages; packages = malloc (sizeof(char) * X * Y);
Da ist dann der Zugriff nur etwas komplexer..
-
Warum willst du unbedingt eine Struktur zurückgeben? Übergib dein Array hald als Parameter (Zeiger).
-
sorry, vergessen zu schließen. DocJunioRs variante hat mir gut gepasst.
danke!