int main() {
int my array[3][3] =
10, 23, 42,
1, 654, 0,
40652, 22, 0
};
printf("%d\n", my_array[3][3]);
return 0;
}
Ich kann das Array nicht drucken. Irgendwelche Ideen warum? Ich bin ein Programmieranfänger, daher sind Ratschläge willkommen.
Fehlt ein Teil des Codes? Es sieht so aus, als ob Ihnen eine öffnende Klammer im Array sowie ein _ in der my_array-Deklaration fehlen
– Austin Brunkhorst
15. März 2012 um 19:41 Uhr
Nur ein Ratschlag: Sie sollten die Sprache angeben, in der Sie codieren, um eine geeignete Lösung besser zu identifizieren 🙂
– Null
15. März 2012 um 19:42 Uhr
Oh, und Sie sollten uns den Fehler mitteilen, den Sie erhalten, da in diesem Code viel Platz für Fehler ist 😉
– Niklas B.
15. März 2012 um 19:43 Uhr
Großer Hinweis: Array-Indizes beginnen bei 0. my_array[3][3] versucht, die 4. Zelle in der 4. Zeile Ihres Arrays zu erhalten. Was ist falsch mit diesem Bild?
– chao
15. März 2012 um 19:43 Uhr
Was Sie tun, ist den Wert im Array an Ort und Stelle zu drucken [3][3]was für ein 3by3-Array ungültig ist, müssen Sie alle Spots durchlaufen und drucken.
Wenn Sie eine genauere Formatierung wünschen, müssen Sie die Formatierung von printf ändern.
Wenn Sie in C++ programmieren, können Sie auch verwenden cout Anstatt von printf
– trev9065
15. März 2012 um 19:46 Uhr
@ trev9065 stimmt, aber er hat es benutzt printf und hatte keine Sprache angegeben, als ich antwortete, also blieb ich dabei printf.
– twain249
15. März 2012 um 19:47 Uhr
Jake
In C gibt es keine .length-Eigenschaft. Die .length-Eigenschaft kann nur auf Arrays in objektorientierten Programmiersprachen (OOP) angewendet werden. Die Eigenschaft .length wird von der Objektklasse geerbt; die Klasse, von der alle anderen Klassen und Objekte in einer OOP-Sprache erben. Außerdem würde man .length-1 verwenden, um die Nummer des letzten Index in einem Array zurückzugeben; Wenn Sie nur .length verwenden, wird die Gesamtlänge des Arrays zurückgegeben.
Die Zeile (sizeof( my_array ) / sizeof( my_array[0] )) gibt Ihnen die Größe des betreffenden Arrays an. Die Eigenschaft sizeof gibt die Länge in Bytes zurück, also muss man die Gesamtgröße des Arrays in Bytes durch die Anzahl der Bytes jedes Elements dividieren, jedes Element nimmt 4 Bytes ein, da jedes Element vom Typ int ist. Das Array hat eine Gesamtgröße von 16 Bytes und jedes Element hat 4 Bytes, sodass 16/4 4 der Gesamtzahl der Elemente in Ihrem Array ergibt, da die Indizierung bei 0 und nicht bei 1 beginnt.
Dies würde nicht funktionieren, wenn das Array seitdem nicht quadratisch ist jdex Schleife mit der Größe des äußeren Arrays und nicht der inneren.
– JaviMerino
14. Mai 2014 um 18:04 Uhr
Es sieht so aus, als ob Sie einen Tippfehler in Ihrem Array haben, es sollte lauten:
int my_array[3][3] = {...
Du hast die nicht _ oder der {.
Ebenfalls my_array[3][3] ist ein ungültiger Standort. Da fangen Computer an zu zählen 0Sie greifen auf die Position zu 4. (Arrays sind so seltsam).
Fehlt ein Teil des Codes? Es sieht so aus, als ob Ihnen eine öffnende Klammer im Array sowie ein _ in der my_array-Deklaration fehlen
– Austin Brunkhorst
15. März 2012 um 19:41 Uhr
Nur ein Ratschlag: Sie sollten die Sprache angeben, in der Sie codieren, um eine geeignete Lösung besser zu identifizieren 🙂
– Null
15. März 2012 um 19:42 Uhr
Oh, und Sie sollten uns den Fehler mitteilen, den Sie erhalten, da in diesem Code viel Platz für Fehler ist 😉
– Niklas B.
15. März 2012 um 19:43 Uhr
Großer Hinweis: Array-Indizes beginnen bei 0.
my_array[3][3]
versucht, die 4. Zelle in der 4. Zeile Ihres Arrays zu erhalten. Was ist falsch mit diesem Bild?– chao
15. März 2012 um 19:43 Uhr