Forum: PC-Programmierung Pointer -> 2Dim-Array


von danx066 (Gast)


Lesenswert?

Hi,
ich hänge an folgendem Problem fest:
Ich hab ein globales
RGBTRIPLE *pixel24array;
Das benutze ich erst um es in Form von pixel24array[i].rgbtBlue=...
zu befüllen (also als 1Dim-Array).

In einer anderen Funktion will ich es aber wie ein 2Dim-Array verwenden 
können. Also pixel24arry[x][y].rgbtBlue=... Die Indexgrenzen sind 
bekannt und ich hab schon versucht einen Pointer auf ein 2Dim-Array zu 
erstellen und ihm die Adresse von pixel24array zu geben:
RGBTRIPLE (*abc)[height][width];
    abc=pixel24array;
Das kann aber anscheinend nicht umgewandelt werden.
Auch mit casts gings nicht:
RGBTRIPLE (*abc)[height][width];
    abc=(RGBTRIPLE*)pixel24array;
Und auch nicht wenn ich sage, dass es ein Pointer auf ein 1Dim-Array 
ist, den man ja wie ein 2Dim-Array verwenden könnte, da es nur darauf 
ankommt die Zeilenlänge zu kennen und es dann egal wäre wieviele Spalten 
noch kommen:
RGBTRIPLE (*abc)[width];
    abc=(RGBTRIPLE*)pixel24array;

Auf jeden Fall will ich kein neues 2Dim-Array erstellen (Speicherplatz) 
sondern nur einen Pointer darauf.

von Christoph F. (saij)


Lesenswert?

Rechne doch einfach die 2Dim Koordinaten in 1Dim Koordinaten um.
Und dann kannst du einfach auf das 1Dim Array zugreifen.

von danx066 (Gast)


Lesenswert?

^^Ja das hab ich sogar erst so gemacht:
Hatte immer array[ywert*width+xwert] drin stehen, aber (es ist eine 
Schulaufgabe) der Lehrer meinte, dass dafür definitiv ein 2Dim-Array 
verwendet werden soll. Und ehrlich gesagt war mir das auch schon langsam 
zu unübersichtlich geworden.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.
Lade...