Struct Array malloc



  • Hallo,
    ich versuche eine Array in Strukturen anzulegen. in der Struktur befindet sich ein void-zeiger:

    STRUKT_NAME *pStore;
    
    pStore = (STRUKT_NAME*) malloc( sizeof(STRUKT_NAME) * nrOfItems);
    pStore[0].member1 = 1;
    pStore[0].addr = (float*) &fVar1;
    pStore[1].member1 = 1;
    pStore[1].addr = (float*) &fVar2;
    pStore[2].member1 = 1;
    pStore[2].addr = (float*) &fVar3;
    

    Einige Funktionen später kann ich nicht mehr auf die Addressen zugreifen und es kommt eine Segfault?
    Ist da was falsch?



  • Wie legst du fVar1 etc. an? Ebenfalls mit malloc oder als globale Variable? Wenn es auf dem Stack ist, dann sind die Adressen nach einem return natürlich ungültig!

    Außerdem solltest du den Rückgabewert von malloc nicht casten! http://www.c-plusplus.net/forum/viewtopic.php?t=206606



  • Zeig mal mehr Code, wo du zugreifen kannst du wo nicht.

    Btw, die Rückgabe von malloc casten ist böse (=>SuFu). Außerdem: wenn du schon dynamisch mit nrOfItems allozierst, solltest du das Füllen der Elemente auch in einer for-Schleife (mit nrOfItems Iterationen) machen.


Anmelden zum Antworten