Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    174

    [C] problema con malloc/realloc

    Ciao, allora ho una struttura cosi:

    typedef struct InmDefectsTwoDimFrame
    {
    int frameNr;
    int nr;
    InmDefectRect *defects;
    }
    InmDefectsTwoDimFrame;

    dove

    typedef struct InmDefectRect
    {
    int ID;
    int type;
    int weight;
    InmImageCoordPoint dimension;
    InmWorldCoordPoint position;
    InmDefectRelation relation;
    }
    InmDefectRect;

    Io voglio che la struttura InmDefectsTwoDimFrame contenga un array di tipo InmDefectRect il quale venga aggiornato dentro un for aggiungendo elementi. Mi potreste dire come fare l'allocazione della momoria, perchè attualmente faccio così e mi viene dato errore a runtime quando fa il secondo realloc:

    *defectsFrame = (InmDefectsTwoDimFrame *) realloc(*defectsFrame, (totalTwoDimdefects + boxesSize) *sizeof(InmDefectsTwoDimFrame **));

    (*defectsFrame)->defects = (InmDefectRect *) realloc((*defectsFrame)->defects, (totalTwoDimdefects + boxesSize) * sizeof(InmDefectRect));

    spero che sapete dirmi qualcosa

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    174
    Risolto....

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Moderazione

    Originariamente inviato da canax
    Risolto....
    L'etica del forum suggerisce di postare la soluzione, in modo che possa essere utile a tutti gli utenti che dovessero trovarsi ad affrontare lo stesso problema.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    174
    Hai ragione :-)!!

    In pratica dichiaravo sbagliato la struttura principale, perche la dichiaravo con il doppio asterisco **.
    Inoltre visto che si stratta di una struttura che contiene un array dinamico ho dovuto allocare solo quello:

    laserTriangulationDefects.defects = (InmDefect *) realloc(laserTriangulationDefects.defects, (totalTriangulationDefects+1) * sizeof(InmDefect));


    Ciao ciao

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Originariamente inviato da canax
    In pratica dichiaravo sbagliato la struttura principale, perche la dichiaravo con il doppio asterisco **. [...]
    Ottimissimo e ben fatto!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.