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!


Log in to reply