"unboxing" mit structs in C



  • Hallo zusammen,

    mein kleines Programm segFaultet immer an der Stelle.

    myNote = (note_t*)content.dptr;
    printf("note: %s\n", myNote->note_cp);
    

    Es kommt also nie bis zu Zeile 17 bzw. bis zum printf("Debug\n");

    Das struct datum schaut folgendermasen aus:

    /*
     * typedef struct {
     *     char   *dptr;
     *     int    dsize;
     *  } datum; 
     */
    

    Gibt es so eine Art unboxing wie in Java garnicht in ANSI C??

    Ich versuche ein Struct in eine gdbm Datenbank zu speichern und dann wieder mit meiner rd() Funktion auszulesen.

    Kann mir jemand weiterhelfen?

    note_t *rd(int id, GDBM_FILE *db) {
            note_t *myNote;
    
            datum key, content;
            key.dptr = &id;
            key.dsize = sizeof(id);
    
            if (gdbm_exists(db, key)) {
                    printf("key exists, fetching data\n");
    
                    content = gdbm_fetch(db, key);
                    myNote = (note_t*)content.dptr;
    
                    printf("note: %s\n", myNote->note_cp);
    
                    printf("Debug\n");
    
                    return &myNote;
            }
    
            else {
                    printf("key not found in db!\n");
                    return NULL;
            }
    }
    


  • Was hat das den mit unboxing zu tun? 🙄



  • content = gdbm_fetch(db, key); liefert wahrscheinlich mumpitz zurück. hat mit unboxing nichts zu tun.


Anmelden zum Antworten