Re: Fehler in mem.copypos? Kategorie: Programmierung (von Detlef - 23.12.2020 12:52) | ||
Als Antwort auf Fehler in mem.copypos? von Detlef - 15.12.2020 18:08 | ||
| ||
Hallo nochmal, ich habe nun herausgefunden, dass copypos wiefolgt funktioniert: Es kopiert byteweise nacheinander aufsteigend die Anzahl Bytes von der Quelle aufs Ziel. Im unteren Beispiel liegt das Ziel hinter der Quelle, somit wird immer der gleiche Inhalt kopiert, erst von Pos auf Pos+1, dann von Pos+1 auf Pos+2 usw. Kopiert man andersherum, also von Pos auf Pos-1 funktioniert das einwandfrei! Mir würde also eine copypos-Funktion fehlen, die genau anders herum funktioniert, also byteweise, nacheinander absteigend die Anzahl Bytes von der Quelle aufs Ziel kopiert. Kann jemand das von der mem.copypos Funktion ableiten? Ich kenne mich leider überhaupt nicht mit den Inline Funktionen aus. Beste Grü�e, frohe Weihnachten, Detlef > Hallo, > > ich ringe mit den Fehlern in einer Funktion, und bin nun der Meinung, dass die Ursache in der > Funktion mem.copypos liegt. > > Nach meinem Verständnis müssten die beiden folgenden Programmzeilen das gleiche Ergebnis bringen. > > Es geht darum in einem Array, die letzten Werte um eine Position nach hinten zu verschieben, > um einen weiteren Wert an der Position einzufügen. Die zweite Zeile funktioniert einwandfrei, > die erste führt dazu, dass auf den letzten beiden Positionen der vorletzte Wert zweimal abgespeichert > wird. Vor der Logik her, müsste auch die erste Zeile mit copypos das hinkriegen, tut sie aber nicht. > > Dlast = letzter Wert > Dfirst = erster Wert > Dpos = aktuelle Position, wo eingefügt werden soll. > > > int a, > int idxDS[100]; > > mem.copypos(idxDS,Dpos+1,idxDS,Dpos,Dlast-Dpos); > > for a ... (Dlast-Dpos) idxDS[Dlast-a]=idxDS[Dlast-1-a]; > > > > Kann das jemand nachvollziehen? > > VG > > Detlef | ||
Antwort schreiben Antworten: |