Ich habe eine Funktion, die nur einen (void*)
Zeiger für die Datenübertragung hat. Aber ich muss zwei verschiedene Strukturen (struct A
und struct B
) gleichzeitig mit dem (void*)
Zeiger übertragen. Ist es möglich, mit diesem Zeiger eine Struktur nach der anderen zu speichern und dann mit Strukturgrößen und Offset auf Daten zuzugreifen?Wie kann ich zwei separate Strukturen an eine Funktion übergeben, die einen einzelnen Zeiger akzeptiert?
1
A
Antwort
5
Sie etwas tun könnte, wie:
struct C
{
struct A myA;
struct B myB;
};
Füllen Sie die myA
und myB
Variablen in C
, und dann einen Zeiger auf eine struct C
in Ihrer Funktion übergeben.
2
Sie können eine struct
erstellen, die zwei Zeiger hält, dann die Adresse einer Instanz dieser struct
passieren:
typedef struct
{
struct A *a_ptr;
struct B *b_btr;
} struct_with_two_pointers;
...
struct A a;
struct B b;
...
struct_with_two_pointers X;
x.a_ptr = &a;
x.b_ptr = &b;
someVoidFunc((void *) &X);
2
Hinzufügen von Beispielcode-Schnipsel, ob das hilft.
typedef struct
{
int age;
int rollno;
}struct_A;
typedef struct
{
char name[10];
int marks;
}struct_B;
typedef struct
{
struct_A a;
struct_B b;
}struct_C;
struct_C combined_struct = {{15,10}, {"Henry", 85}}; //Fill the structure here.
someRandonFunction((void*) &combined_struct); //Pass it.
Verwandte Themen
- 1. Kann ich einen Zeiger an einen Zeiger übergeben, Speicher zuweisen und ihn dann zurückgeben?
- 2. Wie ändere ich einen Zeiger, der an eine Funktion in C übergeben wurde?
- 3. Wie kann ich eine Funktion an ein Perl Sub übergeben?
- 4. Wie kann ich eine Funktion erstellen, die einen SQLDataReader und einen DBDataRecord als Parameter akzeptiert?
- 5. R: Wie zwei Dateipfade als Parameter an eine Funktion übergeben?
- 6. Exchange-Zeiger in separate Funktion
- 7. Einen Zeiger an eine Funktion übergeben und dann in eine andere Funktion einfügen
- 8. kann einen Unterklassenzeiger nicht an eine Funktion übergeben, wenn die Funktion einen Verweis auf den übergeordneten Zeiger benötigt, warum?
- 9. Wie kann ich hier eine Variable an eine Funktion übergeben?
- 10. Wie kann ich einen Parameter an diese Funktion übergeben?
- 11. Zeiger auf eine Funktion übergeben
- 12. Fortran Strukturen und Zeiger
- 13. Kann ich so tun, als würde ich einen anderen Objekttyp an eine Funktion übergeben?
- 14. Einen QLocalSocket * an eine Methode übergeben, die einen QIODevice erwartet *
- 15. Einen $ scope Wert an eine Funktion übergeben
- 16. Wie kann ich Objekte an eine exponierte Luaj-Funktion übergeben?
- 17. Übergeben Sie eine Funktion an einen #Selector
- 18. Wie übergeben Sie einen Zeichenzeiger an eine Funktion
- 19. Wie viele Argumente kann ich an eine Bash-Funktion übergeben?
- 20. Wie kann ich einen Parameter an eine Funktion übergeben, die noch nicht deklariert ist?
- 21. Wie übergebe ich einen Zeiger auf eine Funktion
- 22. Zeiger auf Funktion übergeben, die eine Referenz nimmt?
- 23. Wie kann ich einen Namespace an eine Methode übergeben?
- 24. Matlab - Varargin an eine Funktion übergeben, die eine variable Anzahl von Argumenten akzeptiert
- 25. ein Objekt an eine Funktion übergeben, die eine param Liste akzeptiert
- 26. Kann ich eine WPF-TreeView an einen einzelnen Stammknoten binden?
- 27. Wie kann ich einen Drehwinkel an die ffmpeg-Bibliothek übergeben?
- 28. Wie kann ich einen Parameter an eine modale Bootstrap UI-Funktion übergeben, um eine Vorlage festzulegen?
- 29. Wie kann ich eine Funktion an einen anderen Thread senden?
- 30. Wie kann ich eine Funktion auf ein Array anwenden und zwei separate Arrays bilden?
Haben Sie versucht, etwas selbst zu implementieren? –
@GAURANGVYAS, ja, tat ich. Ich habe versucht, eine Art von Serialisierung zu machen. Aber ich habe es nicht geschafft. – Dropper