[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] Warum kein Speicherzugriffsfehler



Am Freitag 15 Februar 2008 schrieb Andreas Pakulat:
> On 15.02.08 11:10:11, Martin Steigerwald wrote:
> > Am Donnerstag 14 Februar 2008 schrieb Markus Schulz:
> > > >   int i;
> > > >
> > > >   for (i==0; i<1; i++) {
> > >
> > >           ^^
> > > Das ist ein Vergleich und keine Initialisierung. D.h. i hat einen
> > > zufälligen Wert. Deshalb stürzt dein Programm ab, da i mit extrem
> > > hoher Wahrscheinlichkeit als Index auf eine nicht von deinem
> > > Programm allokierte Page zeigt.
> >
> > Das ist natürlich auch von daher interessant, als ich immer davon
> > ausging, dass die Deklaration der Variable aka "int i;" bereits den
> > Speicherbereich für diese alloziert.
>
> Das ist auch korrekt. Aber fuer eine Variable Speicherbereich
> allozieren bedeutet nicht, dass der Inhalt des Speichers auch auf einen
> "sinnvollen" Wert gesetzt wird. Sprich i ist "irgendwas" und weil int
> auch negative Werte haben kann ist die Chance dass was immer in dem
> Speicherbereich liegt als negative Zahl interpretiert werden kann nicht
> so gering.

Ah, jetzt verstehe ich: i hat *irgendeinen* Wert und in der Regel einen, 
der noch außerhalb der 4KByte von puffer liegt. Und ich dachte nun, der 
vergleichende Zugriff auf i wäre der illegale Zugriff.

Wie gesagt, meine letzten Erfahrungen mit C sind schon eine geraume Weile 
her.

Danke. ;-)

-- 
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA  B82F 991B EAAC A599 84C7

Attachment: signature.asc
Description: This is a digitally signed message part.


Reply to: