Computerhilfen.de Logo
Forum
Tipps
News

zweidimensionalle Arrays in c++

Ich muss das acht-dame-problem als ein allgemeines Problem lösen(mit n-Damen).
Dazu brauch ich ein zweidimensionales Array, das sich nach der eingegebenen Größe des Benutzers richtet.
Also im Grunde einen Zeiger.
Ich hab aber keine Ahnung wie ich die Initialisierung mit einem zweidimensionalen Array bewekstelligen soll...


Antworten zu zweidimensionalle Arrays in c++:

Mach's eindimensional, und berechne die Indizes immer selber:

int* schachbrett = new int[ hoehe * breite ];

for( int x = 0; x < breite; ++x )
{
    for( int y = 0; y < hoehe; ++y )
    {
        schachbrett[ x + y * breite ] = <irgendwas>;
    }
}

« Letzte Änderung: 02.01.04, 14:40:54 von Q »

ich habs jetzt übrigens raus:
int far **dame=(int far **) farmalloc(n*n*sizeof(int));

Hm, das sieht nicht so wirklich nach C++ aus ... 'far' klingt irgendwie nach Grauer Vorzeit 8)

Wie greifst du jetzt auf die Elemente dieses Arrays zu ?

Du hast jetzt ja nen Pointer auf nen Pointer auf nen Int, aber der zeigt direkt auf nen Speicherbereich mit n*n int's ... irgendwie sieht das seltsam aus ...

es klappt soweit, ich kann diese Geschoss jetzt ganz normal als zweidimensionales Array behandeln.

Nur leider lässt sich das ganze nicht auf 0 setzen.
ich probier noch ein bischen rum (vielleicht mit reinkopieren)

Ja, du kannst schreiben (zumindest ist es syntaktisch korrekt) dame [ x][y], weil dame hat ja den Typ int**; aber es zeigt nicht auf ein Array von int-Pointern(bzw Arrays, weil du nur ein einziges Array angelegt hast), und daher crasht es?

« Letzte Änderung: 03.01.04, 22:46:52 von Q »

naja, im Grunde ist ein Zeiger auf einen Zeiger ein zweidimesionales Array, es tut genau das selbe(auch speichertechnisch)
aber wie füll ich das ganze mit 0 ???
ich hab schon alles mögliche probiert.
bei **dame=0; passiert gar nichts und ne for-Schleife hat auch nicht geholfen...


« warum muss man das noch angeben?Wie kann ich in C++ auf zB. office programme zugreifen? »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!