Re: Problem bei for Anweisung
- From: Juergen Ilse <juergen@xxxxxxxxxxxxxxxxxxxx>
- Date: 05 Apr 2009 17:21:31 GMT
Hallo,
Sebastian Waschik <sebastian.waschik@xxxxxx> wrote:
Jason Mayer <JacK_McRiDER@xxxxxxx> writes:
Tremos schrub:
for ( zaehler ; zaehler < 499; feld[zaehler++]=WERT)
"Warning: statement with no effect"
Schreib lieber
for(; zaehler <= 500; feld[zaehler++] = WERT)
Entweder zaehler<500 oder zaehler<=499, sonst greifst du schreibend auf
das (nicht existierende) 500ste Feldelement zu.
Das gleiche tut uebrigens auch ein
memset(feld, WERT, 500);
memset kann man nur verwenden, wenn man ein char-Feld hat. Im Falle
von
int feld [500];
ist der memset-Aufruf aber nicht gleichwertig zur for-Schleife.
Korrekt.
Ein Fehler des ursprünglichen Programmes war übrigends, dass "feld"
nicht initialisiert wurde, bevor es verwendet wurde.
Nein, der Fehler des urspruenglichen Programms war, dass die
Abbruchbedingung falsch war.
Mit "int feld [500] = {};" würde es initalisiert werden.
Es wird auch so mit 0 initialisiert, siehe C99-Standard Abschnitt 6.7.8
("Initialization") Punkt 10. unter "Constraints":
----------------------
10 If an object that has automatic storage duration is not initialized
explicitly, its value is indeterminate. If an object that has static
storage duration is not initialized explicitly, then:
— if it has pointer type, it is initialized to a null pointer;
— if it has arithmetic type, it is initialized to (positive or
unsigned) zero;
— if it is an aggregate, every member is initialized (recursively)
according to these rules;
— if it is a union, the first named member is initialized
(recursively) according to these rules.
----------------------
Tschuess,
Juergen Ilse (juergen@xxxxxxxxxxxxxxxxxxxx)
--
Ein Domainname (auch wenn er Teil einer Mailadresse ist) ist nur ein Name,
nicht mehr und nicht weniger ...
.
- Follow-Ups:
- Re: Problem bei for Anweisung
- From: Markus Wichmann
- Re: Problem bei for Anweisung
- From: Sebastian Waschik
- Re: Problem bei for Anweisung
- References:
- Problem bei for Anweisung
- From: Gökhan Demircan
- Re: Problem bei for Anweisung
- From: Tremos
- Re: Problem bei for Anweisung
- From: Tremos
- Re: Problem bei for Anweisung
- From: Jason Mayer
- Re: Problem bei for Anweisung
- From: Sebastian Waschik
- Problem bei for Anweisung
- Prev by Date: Re: Problem bei for Anweisung
- Next by Date: Re: Problem bei for Anweisung
- Previous by thread: Re: Problem bei for Anweisung
- Next by thread: Re: Problem bei for Anweisung
- Index(es):
Relevant Pages
|