Anzeige:
Ergebnis 1 bis 3 von 3

Thema: 2-dimensionales char array, wie gehts?

  1. #1
    Registrierter Benutzer Avatar von soul_rebel
    Registriert seit
    16.03.2005
    Beiträge
    14

    Angry 2-dimensionales char array, wie gehts?

    ich werde langsam wahnsinnig.... kann mir jemand sagen wie ich dynmisch ein 2-dimensionales chararray alloziiere? also ich mächte ganz einfach sagen wir i strings der größe 30 haben, und habe alle erdenklichen kombinationen versucht aber es klappt nciht...; das hier z.b.
    Code:
    char **temp = new char[i][30]
    gibt ein
    Code:
    cannot convert `char (*)[30]' to `char**' in initialization
    mit zwei variablen gehts auch nicht und wenn ich sie umdreheh sagt der i darf nicht in eine konstante expression...

    ich wäre wirklich super glücklich wenn mir jemand erklären könnte wie ich das anzustellen habe...
    danke

    p.s.: nein eine andere string bibliothek zu benutzen geht nicht, es soll schon ein richitges char array sein...bin schon fast so verzweifelt sinnlos eine struktur anzulegen die nur ein char* drin hat...

    # cd /usa/whitehouse
    # rm -rf *


    ---------------------------------------

    "aber ich sage euch: Wer das Schwert erhebt gegen das Volk, der wird durch das Schwert des Volkes umkommen."
    - Georg Büchner, 1834

  2. #2
    Registrierter Benutzer Avatar von Sym
    Registriert seit
    05.09.2002
    Ort
    Bremen
    Beiträge
    278
    Code:
    char **temp = new (char*)[10];
    for(unsigned int i=0; i<10; i++)
        temp[i] = new char[30];
    Ist ungetestet, sollte aber funktionieren. Du musst immer erst den ersten Pointer initialisieren und dann den nächsten.
    Denk mal drüber nach...

    Lars

    ACHTUNG: ersetze Linux durch GNU/Linux an den entsprechenden Stellen
    www.macuser.de, MSVC2005 Express und Qt, Qt/Mac installieren

  3. #3
    Registrierter Benutzer
    Registriert seit
    23.05.2004
    Beiträge
    592
    Wenn du ein "rechtwinkliges"-Array anlegen möchtest, dann sollte es auch so gehen:
    Code:
    int i = 10;
    char (* p1)[15] = new char[i][15];
    
    for(int c = 0; c != i*15; ++c)
    	{
    	std::cout << "\nc = " << c;
    	std::cout << "\nc/15 = " << c/15 << "; c%15 = " << c % 15;
    	
    	p1[c/15][c%15] = 'x';
    	}

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •