Hi
Du hast i schon definiert. Welchen Standard benutzt du eigentlich? C89 oder C99? (C11 ist das sicher nicht).
Wenn du das size_t entfernst und du das existierende i verwendest (also im ersten for-Feld nur "i=0" schreibst, sollte der Error verschwinden.
Gruss
cwriter
/EDIT: Und schreibe deinen Code in C-Tags, [code=c] [/code] , dann wird der Text auch nicht kursiv ([i] ist der BB-Tag für italic). Und nebenbei wird nicht immer der PHP-Array verlinkt.
/EDIT2: Zu deinem Code: Irgendwie kommt in letzter Zeit eine Flut solchen Codes. Liegt nicht an dir, aber da rollen sich mir die Fussnägel auf. @sheel: Genau das meinte ich: Es wird mal einfach irgendwas als Aufgabe gegeben, ohne irgendwas erklärt zu haben...
* dereferenziert, & referenziert.
z.B.:
Wenn du nun **spielfeld machst, kopierst du den ersten Wert. Den dann mit "&" zu referenzieren gibt dir nur einen Pointer auf diesen Wert. Als Faustregel: Wenn & vor * steht, dann ist etwas falsch.
Du hast i schon definiert. Welchen Standard benutzt du eigentlich? C89 oder C99? (C11 ist das sicher nicht).
Wenn du das size_t entfernst und du das existierende i verwendest (also im ersten for-Feld nur "i=0" schreibst, sollte der Error verschwinden.
Gruss
cwriter
/EDIT: Und schreibe deinen Code in C-Tags, [code=c] [/code] , dann wird der Text auch nicht kursiv ([i] ist der BB-Tag für italic). Und nebenbei wird nicht immer der PHP-Array verlinkt.
/EDIT2: Zu deinem Code: Irgendwie kommt in letzter Zeit eine Flut solchen Codes. Liegt nicht an dir, aber da rollen sich mir die Fussnägel auf. @sheel: Genau das meinte ich: Es wird mal einfach irgendwas als Aufgabe gegeben, ohne irgendwas erklärt zu haben...
* dereferenziert, & referenziert.
z.B.:
C:
int a = 123;
int* b = &a;
//*b==a
//b != a (auch ungleicher Typ!)
//*(&a) == a == 123
//b == &a (trivial, aber wichtig: Die Adresse von a ändert sich nicht!(
//&b != &(&a) (kann sein, ist meist nicht)
//&a sagt: "Wo im Speicher ist a?"
//a sagt: "Was ist der Wert von a?"
//*b sagt: "Was steht an der Adresse b?"
*b = 42;
//a == *b == 42
//Da b auf a zeigt, ändert man a, wenn man den Wert, worauf b zeigt, ändert.
//Man kann nur Pointertypen dereferenzieren, *a geht NICHT.
//Man kann IMMER referenzieren (auch wenn es wenig Sinn macht; der Prozessor mag Indirektionen nicht
//z.B. ein Wert vom Typ int*** kann 3x dereferenziert werden, aber die Referenzen müssen vorher gesetzt sein, sonst U.B.
//Eine Einfache Erklärung ist: Rechts vom Typ baut man Referenzen auf, Links von der Variable baut man Referenzen ab (*).
//***(int***) wäre also int. (ACHTUNG: int*** ist nur der Typ, es müsste eine Variable dieses Typs an der Stelle des (int***) stehen!)
Zuletzt bearbeitet: