Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    87

    [C] "ridimensionare" un array

    Salve ragazzi!

    Ipotizziamo di avere questa struttura:
    codice:
    struct
    {
       int dato;
    } elem;
    
    elem array[100];
    più avanti mi trovo nella condizione di aver bisogno di array di una diversa dimensione, spesso molto più grande o anche più piccolo, insomma vorrei che fosse più dinamico.
    Non ho idea di come fare!

    Se qualche anima pia mi può aiutare usando un linguaggio da principiante sarà il benvenuto nel regno dei cieli.

    Merci!

    Ciao ciao!
    vlr

  2. #2
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Non puoi ridimensionare un array, perkè un array è un oggetto statico. Al suo posto puoi usare un puntatore, e poi puoi riallocarlo con la funzione realloc:

    void *realloc(void *ptr, size_t size);

    ovvero, se prima allochi dinamicamente memoria per un puntatore a interi, ptr, e poi vuoi cambiare la dimensione della memoria allocata, basta invocare

    ptr = realloc(ptr, 100 * sizeof(int));

    se per esempio vuoi che la nuova dimensione sia 100; i vecchi elementi puntati da ptr vengono automaticamente ricopiati nella nuova porzione di memoria.


  3. #3
    realloc?
    ciao ciao !!
    _______________
    home : cristianolongo.altervista.org
    e-mail : cristiano_longo@yahoo.it

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    87
    Originariamente inviato da anx721
    Non puoi ridimensionare un array, perkè un array è un oggetto statico. Al suo posto puoi usare un puntatore, e poi puoi riallocarlo con la funzione realloc:
    Ho seguito il tuo consiglio sul puntatore, in effetti non ho bisogno di limitarlo e quindi evito anche la realloc.

    Grazie!

    Ciao ciao!
    vlr

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.