Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [c] utilizzo della rialloc

    ciao

    voi sapreste spiegarmi l'utilizzo della rialloc in c?

    oppure qualche link?

    thnks nik
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  2. #2
    void *realloc(void *block, size_t size);
    rialloca memoria gia' allocata ritornando l'indirizzo della
    nuova memoria allocata

    dove *block e' un puntatore tornato da malloc:
    void *malloc(size_t size);
    malloc alloca size bytes dinamicamente tornando un puntatore all' area
    allocata
    e size e' la nuova dimensione che vuoi allocare
    ti ritorna l'indirizzo di memoria della nuova area allocata.

  3. #3
    ti ringrazio, quindi supponiamo una cosa di questo tipo:

    codice:
    int *prova=(int) malloc(sizeof int*20);
    
    /*
    faccio un po di operazioni su *prova, mi accorgo che non mi basta
    */
    
    prova = (int)realloc(prova,sizeof(int)*30);
    
    
    /*
    faccio altre operazioni su *prova, ora è troppo grande
    */
    
    prova = (int)realloc(prova,sizeof(int)*15);
    tutto questo è corretto?

    e i dati presenti nel vettore prova vengono mantenuti?

    quando rialloco la memoria precedente viene resa disponibile?

    grazie nik
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  4. #4
    dal K&R:
    realloc changes the size of the object pointed to by
    p to size. The contents will be unchanged up to the
    minimum of the old and new values. If the new size is
    larger, the new space is uninitialised. realloc returns
    a pointer to the new space, or NULL if the request cannot
    be satisfied, in which case p is unchanged.
    ---
    realloc cambia la dimensione della memoria puntata da p alla dimensione specificata.
    il contenuto restera' intonso fino al piu' basso tra i due valori(precedente e successivo).
    se la nuova dimensione e'maggiore lo spazio aggiunto non sara' inizializzato(contiene spazzatura),ritoena un puntatore al nuovo spazio o NULL in caso di fallimento

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 © 2025 vBulletin Solutions, Inc. All rights reserved.