1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Multidim. dynamische Arrays

  • \LaTeX
  • 8. November 2004 um 18:13
  • Unerledigt
  • \LaTeX
    7
    \LaTeX
    Mitglied
    Punkte
    425
    Beiträge
    66
    • 8. November 2004 um 18:13
    • #1

    Hallo Leute..
    Ich mochte eine 3-D Struktur als dynamiches multidimensionales Array realisieren. Was ich damit meine ist so was aehnliches wie eine dynamische erzeugte Matrix, nur halt eine Dimension hoeher. Ich bin mir nicht sicher ob ich den Speicher richtig anlege und ihn wieder richtig freigebe (in C++). Das Anlegen hab' ich so gemacht:

    Code
    MyData **data_;
    *data_ = new MyData[x_dim_];
    
    
    for (unsigned int x_count = 0; x_count < x_dim_; x_count++)
    {
      data_[x_count] = new MyData[y_dim_];
    }
    
    
    for (unsigned int x_count = 0; x_count < x_dim_; x_count++)
    {
      for (unsigned int y_count = 0; y_count < y_dim_; y_count++)
      {
        data_[y_count] = new MyData[z_dim_];
      }
    }
    Alles anzeigen

    Und das Freigeben vom Speicher so:

    Code
    if (data_ != NULL)
    {
      for (unsigned int x_count = 0; x_count < x_dim_; x_count++)
      {
        for (unsigned int y_count = 0; y_count < y_dim_; y_count++)
        {
          delete[] data_[y_count];
        }
      }
    }

    Koennte mir jemand den Weg verifizieren bzw. falsifizieren?

    Dank im Voraus..
    ciao..

  • Ringding
    11
    Ringding
    Mitglied
    Reaktionen
    12
    Punkte
    1.237
    Beiträge
    244
    • 8. November 2004 um 22:06
    • #2

    So kann's nicht stimmen.

    Code
    MyData ***data;
    data = new (MyData**)[z_dim];
    <schleife>: data[z] = new (MyData*)[y_dim];
        <schleife> data[z][y] = new MyData[x_dim];

    Wenn das mit den eingeklammerten Typen nicht geht, muss du halt typedefs verwenden.

  • Maximilian Rupp 27. Dezember 2024 um 12:06

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung