Hallo, habe einen Vektor unsigned char time_buffer[18]; wenn ich ihn mit while (j<12) time_buffer[j++]=1; initialisieren will, stehen anschliessend falsche Werte drin (also keine 1en). Hingegen time_buffer[0]=1; time_buffer[1]=1; time_buffer[2]=1; time_buffer[3]=1; time_buffer[4]=1; time_buffer[5]=1; time_buffer[6]=1; time_buffer[7]=1; time_buffer[8]=1; time_buffer[9]=1; time_buffer[10]=1; time_buffer[11]=1; funktioniert einwandfrei. Weiss jemand, was da los sein kann? Danke Hans
Ich würde vor der Schleife
1 | j=0; |
schreiben. Der Rest sieht i. O. aus.
Du kannst ihn auch einfacher initialisieren. memset(time_buffer,1,sizeof(time_buffer)) oder memset(time_buffer,1,12); Gruss Helmi
Dann poste mal ein komplettes Beispiel und nicht nur ein paar Code-Bröckchen. Und tippe es nicht per Hand "aus dem Gedächtnis" ein, sondern füge den Code per Cut&Paste ein, oder poste gleich die ganze Datei als Anhang.
ich habe die Lösung gefunden. Wenn ich unsigned char time_buffer[18]; global anlege und nicht in der main, geht alles wie es soll.
HansDampf wrote:
> ich habe die Lösung gefunden.
Nein, hast du nicht. Solange du nicht weißt, warum das von dir
beobachtete Verhalten auftritt, doktorst du nur an den Symptomen
herum.
Vermutlich wird bei der lokalen Variablen der Optimizer feststellen,
dass du die initialisierten Werte gar nicht benutzt und das dann
gleich alles sein lassen, aber dann wäre es unlogisch, warum er es
in der Schleife wegoptimiert, bei entrollter Schleife jedoch nicht.
>Solange du nicht weißt, warum das von dir >beobachtete Verhalten auftritt, doktorst >du nur an den Symptomen herum. Das stimmt schon. Aber woran kann das liegen? Ich weise in main dem Vektor Werte zu, die ich für einen Funktionsaufruf (ausserhalb main natürlich) benutze. Ich dachte mir schon, dass der Compiler vermutlich was wegoptimiert. Aber warum macht er das?
> Ich weise in main dem Vektor Werte zu, die ich für einen > Funktionsaufruf (ausserhalb main natürlich) benutze. Da wir weder sehen können, wo der "Vektor" deklariert ist, noch, wie die Funktion aufgerufen wird, geschweige denn, wie die Funktion auf den "Vektor" zugreift, kann ich hier nur Stefan zitieren: Beitrag "Re: seltsames Verhalten eines Vektors" Poste KOMPLETTEN Quellcode, keine zusammenhanglosen Schnipsel!
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.