moin, kurze Frage: Ist ein Feldzugriff eigentlich standardmäßig ein Modulozugriff? Beispiel: char Startfeld[10]; char Zielfeld [20]; char a =5; for(j=0; j<20; j++) { Zielfeld = a * Startfeld[j]; } Vorausgesetzt es stehen im Startfeld Initialwerte ungleich Null, ist im Zielfeld[0+j] nun der selbe Wert wie im Zielfeld[10+j] mit j= {0,1,...,10} ??? mfg
Die Funktion heisst natürlich richtigerweise: for(j=0; j<20; j++) { Zielfeld[j] = a * Startfeld[j]; }
Array schrieb: > Ist ein Feldzugriff eigentlich standardmäßig ein Modulozugriff? In C definitiv nicht. Ein Zugriff über die Arraygrenzen hinaus geht ins Leere, bzw. in von anderen Dingen belegten Speicher.
Array schrieb: > Zielfeld = a * Startfeld[j]; Willst du einem Array einen char-Wert zuweisen? Das geht schief. Oder meinst du Zielfeld[j] = a * Startfeld[j];? In dem Fall wäre die Antwort "nein".
bla schrieb: > ArrayPointer[n] ist das gleiche wie > > *(ArrayPointer + n * sizeof(ArrayTyp)) NEIN. ArrayPointer[n] ist das gleiche wie *(ArrayPointer + n);
Array schrieb: > Ist ein Feldzugriff eigentlich standardmäßig ein Modulozugriff? Schon Generationen von Hackern leben wesentlich davon, dass das nicht der Fall ist. Zumindest im Adressraum des Prozesses kann man so im Prinzip JEDE Adresse erreichen. Das sind die berühmten Buffer Overflow Exploits. Es liegt also am Programmierer, so einen Zugriff zu verhindern. Gruss Reinhard
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.