Warum geht mein Programm nicht?!

nix für ungut - aber du wendest dich an uns mit einem problem, und wir haben dir dabei geholfen, es nicht nur zu lösen, sondern auch zu verstehen? meinst du nicht, dieser kommentar war etwas fehl am platz?
 
Mir ist keine Entsprechung zu "Stock" in anderen Sprachen bekannt. Du verwechselst das vielleicht mit Etage oder Geschoss ;) Im Deutschen wird auf das Erdgeschoss aufgestockt.

Dazu meinte ich bla. Aber ihr habt mir dennoch sehr geholfen, danke.
 
geklärt..
 
Zuletzt bearbeitet:
aretiss, below und _ebm_ haben mit ihren Einwänden völlig recht! Verbale Flapsigkeiten würde ich hier unterlassen, man kann bereits lesen wohin sowas führt :)
 
Achsooooo. Das ist ja etwas unlogisch gemacht, aber naja...

Für Anfänger nicht logisch. Aber pragmatisch.
Arrays sind nämlich nur Pointer, wobei der Aufruf 'int myArray[10]' im Speicher 10 Speicherplätze von Integergröße erstellt. In Zeigerschreibweise:
Code:
(int*) malloc(10*sizeof(int))
Der Zugriff auf die Integerwerte erfolgt über 'myArray', was in Zeigern heißt:
Code:
*(myArray + i * sizeof(int))
Das Element an Stelle 0 steht also direkt an 'myArray'.
Wenn du dir ansiehst wie Arrays organisiert sind, dann ist das 0-er Zählen logisch. Nach kurzer Eingewöhnung merkst du es gar nicht mehr, da die Syntax der Sprachen darauf ausgelegt ist.
Das z.B. iteriert dir über alle Elemente deines Arrays:
Code:
int arrayLength = 10;
int myArray[arrayLength];
//Dazwischen wirds befüllt...
for (int i = 0; i < arrayLength; i++)
  {
    cout << myArray[i] << endl;
  }

Ein kleiner Tipp: Beim Programmieren sollte man sich immer mit überlegen, was deine Pointer und damit auch Arrays im Speicher machen/anrichten, das erspart VERDAMMT viel Ärger im Nachhinein.
 
  • Gefällt mir
Reaktionen: buk, _ebm_, Kümmelkorn und 2 andere
Zurück
Oben Unten