Fehler bei Array-Zuweisung! verstehe ich nicht!!
-
ich habe eine einfaches Code geschrieben, siehe u.
unsigned char imag[640][480], muster[10][10]; . . muster[10][10]= { {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}}; . .
und die habe ich bei VC++ V6.0 compilieren lassen, und ich bekomme eine Fehlemeldung :
error C2059: syntax error : '{'
verstehe ich nicht!! Und ich habe von andere Quelle eine ähnlich Code hier copiert,
unsigned char imag[640][480], muster[10][10]; unsigned char Matrix[4][5] = { {10,20,30,40,50}, {15,25,35,45,55}, {20,30,40,50,60}, {25,35,45,55,65}}; muster[10][10]= { {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}};
die erste Zuweisung ist fehlefrei, aber die Fehlermeldung bekomme ich immer für die Stelle
muster[10][10]= {..
was habe ich falsch gemacht? hat es mit die Inhalt zu tun?
-
Das erste ist keine Zuweisung, sondern eine Initialisierung. Du kannst Arrays nichts zuweisen.
-
Ohje!!
unsigned char muster[10][10] = { {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}};
so ist richitg! habe ich noch mal im Bücher nachgeschaut. Ich habe immer vorgestellt, dass die Arrays genau gleich wie Variable sind! doch nicht gleich! aber siehe u.
unsigned char muster[10][10]; muster[3][5]=8;
ist oben eine ZUweisung? ist es deswegen, dass ich mit obere Code keine Fehlermeldung bekommen habe?
-
Hallo,
noch einmal zur Verdeutlichung:
das hier:
gy100002000 schrieb:
unsigned char muster[10][10] = { {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}, {1,2,3,4,5,6,7,8,9,10}};
ist eine Initialisierung, und keine Zuweisung, auch wenn hier das "="-Zeichen vorkommt, das ist ok. Wurde die Variable aber schon definiert, ohne sie zu initialisieren:
gy100002000 schrieb:
aber siehe u.
unsigned char muster[10][10];
dann nennt man eine Anweisung der Form:
muster[10][10] = ...
Zuweisung, und kann mehreren Elementen mit dieser Schreibweise:
{ {1,2,3,4,5,6,7,8,9,10}, ... }
die nur bei Definition der Variablen erlaubt ist, nicht mehr so Werte zuordnen, wie in dieser Zuweisung:
muster[3][5]=8;
in der nur ein Array-Element einen Wert bekommt.
MfG,
Probe-Nutzer