Array Matrix mit Werten auffüllen

Gast #365374
Lesenswert?

Hi.

Es ist mir echt peinlich zu fragen, aber ich krieg es einfach nicht hin
ein mehrdimensionales Array zu füllen (mit WinAVR).

Ich hab das Array als globale Variable erstellt (noch vor der main()
):

char Bildbuffer[3][3];


und in der Main will ich da dann verschiedene Bilder einfüllen und
dachte mir das ginge so:

int main(void)
{
.
.
.

Bildbuffer[][] = { {1,1,1} ,
                   {1,1,1} ,
                   {1,1,1} };
.
.
.
}

Funktioniert leider nicht, bekomme die Fehlermeldung:
" main.c:107: error: parse error before ']' token "
(Zeile 107 ist die "Bildpuffer[][] = ..." Zeile)

Der Bildbuffer ist in echt natürlich nicht 3x3 groß, aber die Tipperei
wäre für's erklären ziemlich übertrieben den 11x11 Buffer
einzugeben...

Wäre sehr nett wenn mir kurz wer weiterhelfen könnte. Für einen Link zu
ner guten Anleitung wäre auch dankbar, damit ich wegen so nem Kinderkram
nicht nochmal nerven muss :-)

Danke schonmal!

____________________
http://www.dark-sun.de
Gast #365377
Lesenswert?

Jo, so mache ich es momentan auch. Bin ich schon vorher ganz alleine
drauf gekommen ggg

Aber dazu nochmal ne Frage. Gibt es eine einfache Möglichkeit Arrays
umzuladen? Das Array Buffer wird ständig von einer Funktion ausgegeben,
daher müssen die verschiedenen Bilder, die ich einfach als eigene Arrays
erstelle da reingeladen werden.

Momentan sieht es so aus:
1
char Buffer[3][3] = { {0,0,0},
2
                      {0,0,0},
3
                      {0,0,0} };
4

5
char Bild[3][3] = { { {1,0,1},
6
                      {0,1,0},
7
                      {1,0,1} };
8
...
9
int main()
10
{
11
...
12
for ( int i = 0; i < 3; i++)
13
{
14
  for ( int j = 0; j < 3; j++)
15
    Buffer[i][j] = Bild[i][j];
16
}
17
...
18
}

Aber kann man es nicht schneller machen indem man das Array Buffer
irgendwie als Zeiger auf das Array Bild umreferenziert? Stand mit
Pointern schon immer auf Kriegsfuß und dazu kommt noch dass ich seit
Ewigkeiten nicht mehr geproggt habe...
Moderator Persönliche Seite #365379
Lesenswert?

> Aber kann man es nicht schneller machen indem man das Array Buffer
> irgendwie als Zeiger auf das Array Bild umreferenziert?

Sicher.

Wenn du das Array an eine Funktion übergibst zur weiteren
Bearbeitung, wird ohnehin nur ein Zeiger weitergegeben.

Einen Zeiger umlegen geht auch, allerdings macht sich das
bei mehrdimensionalen Arrays nicht ganz so einfach.  Der
Funktionsaufruf (der ja implizit nur einen Zeiger vermittelt)
ist da einfacher.  Die Funktion kann ja durchaus auch inline
sein, wenn du den Overhead scheust.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren