void ptr festen wert (von define) zuweisen



  • Hallo,

    wie kann ich einem void ptr ein define zuweisen?

    #define ZAHL  12345678
    
    void *ptr = (void *)0;
    
    ptr = (typedef struct *)ptr2->Option;
    

    //hier zeigt der ptr auf das struct-Field Option (nur schematisch dargstellt)

    *ptr = (unsigned int) ZAHL
    

    //jetzt soll am anfang des struct-Field Option das #define geschrieben werden.

    Es kommt immer die Fehlermeldung, dass man einem void ptr keinen festen wert zuweisen kann;

    Gruß
    derTim



  • *(unsigned int *) popt_dhcp = (unsigned int) DHCP_MAGIC_COOKIE;
    

    so funktioniert es...

    derTim



  • derTim schrieb:

    Es kommt immer die Fehlermeldung, dass man einem void ptr keinen festen wert zuweisen kann;
    Gruß
    derTim

    Ein void* Zeiger soll ja auch nicht an einen festen Datentypen gebunden werden.
    Der Sinn des void* Zeigers ist ja, das er zur Laufzeit seinen Typen ändern kann.



  • das ist richtig...

    ich verwende den void ptr zum befüllen der struct, die aus verschiedenen typen (int, char etc.) besteht... und der erste wert der struct ist ein fest-definierter Wert -> deshalb als define ausgeführt.

    Anschließend wird der void ptr auf (char 😉 (int 😉 etc. gecastet.

    derTim


Anmelden zum Antworten