Forum: Mikrocontroller und Digitale Elektronik Struktur auf Adresse (Zeiger) schreiben


von Alex (Gast)


Lesenswert?

Hallo,

ich habe im AS4 (Automation Studio - B&R Entwicklungssoftware) eine 
eigene Library geschrieben.

Wenn ich diese Library aufrufe übergebe ich die Adresse zu einer 
Struktur bzw. die Anfangsadresse zu dieser Struktur.

Innerhalb der Library habe ich genau dieselbe Struktur (identischer 
aufbau).

Nachdem meine Berechnung in der Library erledigt ist, übergebe ich die 
Daten an die Library-Struktur.

Nun müsste ich diese Struktur auf die Adresse schreiben, die ich beim 
Aufruf übergeben bekommen habe.

Ich weiß leider nicht, weil ich bisher Pointer/Zeiger immer gemieden 
habe. Würde mich wirklich sehr freuen, wenn jemand einen Tipp hätte.

Folgendes habe ich mithilfe des Internets bereits probiert, hat aber 
leider nicht geklappt:

inst->InputStuktur = &inst->LibraryStruktur

von Einer K. (Gast)


Lesenswert?

Ich glaube du suchst memcpy() ....

von Alex (Gast)


Lesenswert?

Arduino F. schrieb:
> Ich glaube du suchst memcpy() ....

Danke dir. Ich glaube damit wird es gehen ;D.

Hätte da aber nochwas. Ich verwende in der Struktur verschiedene 
Datentypen. Die Struktur ist relativ dynamisch, sodass sich die Größe 
ändern kann.

Gibt es eine Funktion mit der man die Größe einer Struktur bestimmen 
kann? (da memcpy diese Angabe haben möchte)

von Frank (Gast)


Lesenswert?

Sizeof?

von Alex (Gast)


Lesenswert?

Ja, das war es. Danke.

Hätte ich selbst drauf kommen müssen. Schließlich nutze ich das SIZEOF 
seit einer Woche fast täglich ;D. Liegt wohl an der Uhrzeit...

Danke euch beiden

von Timo N. (tnn85)


Lesenswert?

Schönes Beispiel wie einem mit 6 Worten in 2 Antworten geholfen wurde.

von Dirk B. (dirkb2)


Lesenswert?

structs kann man auch direkt zuweisen.
Auch über Zeiger.

i.A. geht das mit *zeiger = Variable;


Alex schrieb:
> inst->InputStuktur = &inst->LibraryStruktur

Dein Beispiel deutet auf eine struct in einer struct hin, von der im 
Text aber nicht die Rede ist.

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
Noch kein Account? Hier anmelden.