Struct-Zugriff

Gast #3155549
for(uint16_t l=0; l<SAMPLES; l++)
{
  Array_1[l]                 = Messergebnisse.Buffer[l];
  uint16_t Ort               = Bitreversal_Field[l];
  Messergebnisse.Buffer[Ort] = Array_1[l];
}

Hallo,

ich habe ein Problem mit der obigen Funktion:

Die Messergebnisse liegen in dem Buffer in geordneter Reihenfogle.

Nun möchte ich diese zwischenspeichern im Array_1

Dann lese ich aus dem Bitreversal_Field eine neue Speicherposition aus.

Dann versuche ich die Messergebnisse aus der Kopie in das Original zu 
überschreiben, wobei nun eine neue Reihenfolge eingenommen werden soll.

Ergebnis:
Funktioniert nicht.

Offensichtlich arbeitet die obige Funktion mit Call-By-Value.

Frage:
Wie greife ich auf das struct Messergebnisse.Buffer mit einem write 
Access zu? Derzeit scheine ich nur mit einer Kopie zu arbeiten...

schonmal Danke im Voraus
Gast #3155555
ich denke mehr du überschreibst dir dein array zu früh.

Du musst erst alles in dein hilfsarray kopieren und dann neu ins alte 
Array zurückkopieren. Du brauchst also 2 Schleifen.
Gast #3155566
aaaah.

natürlich.

Das ist auf jeden Fall ein Fehler.


Ist der Zugriff denn ansonsten richtig, oder müsste ich auf das struct 
noch wieder irgendwie anders zugreifen?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.