Come sapere la dimensione di un vettore allocato dinamicamente?

di il
8 risposte

Come sapere la dimensione di un vettore allocato dinamicamente?

Vorrei capire come si fa a capire la dimensione di un vettore di strutture allocato dinamicamente...
Ho provato con formula sizeof(array)/sizeof(array[0]) ma naturalmente non va...

8 Risposte

  • Re: Come sapere la dimensione di un vettore allocato dinamicamente?

    E' una informazione di cui devi tenerne traccia tu.
  • Re: Come sapere la dimensione di un vettore allocato dinamicamente?

    Il C ed il C++ non supportano la possibilita' di conoscere la dimensione di vettori allocati con 'malloc/calloc' o 'new'.

    Ci sono dei trucchi, comunque:
    1) usare 'msize'
    2) usare malloc/calloc + 'placement new', e usare uno slot per tenere la dimensione del vettore.

    Se non sai di cosa sto parlando, e' corretto: sono tecniche di programmazione avanzate.
  • Re: Come sapere la dimensione di un vettore allocato dinamicamente?

    migliorabile ha scritto:


    Il C ed il C++ non supportano la possibilita' di conoscere la dimensione di vettori allocati con 'malloc/calloc' o 'new'.

    Ci sono dei trucchi, comunque:
    1) usare 'msize'
    2) usare malloc/calloc + 'placement new', e usare uno slot per tenere la dimensione del vettore.

    Se non sai di cosa sto parlando, e' corretto: sono tecniche di programmazione avanzate.
    Grazie mille per il consiglio, effettivamente non lo conosco ma cercherò sul web come utilizzarlo.
  • Re: Come sapere la dimensione di un vettore allocato dinamicamente?

    rairana ha scritto:


    migliorabile ha scritto:


    Il C ed il C++ non supportano la possibilita' di conoscere la dimensione di vettori allocati con 'malloc/calloc' o 'new'.

    Ci sono dei trucchi, comunque:
    1) usare 'msize'
    2) usare malloc/calloc + 'placement new', e usare uno slot per tenere la dimensione del vettore.

    Se non sai di cosa sto parlando, e' corretto: sono tecniche di programmazione avanzate.
    Grazie mille per il consiglio, effettivamente non lo conosco ma come di utilizza?
  • Re: Come sapere la dimensione di un vettore allocato dinamicamente?

    rairana ha scritto:


    rairana ha scritto:


    migliorabile ha scritto:


    Il C ed il C++ non supportano la possibilita' di conoscere la dimensione di vettori allocati con 'malloc/calloc' o 'new'.

    Ci sono dei trucchi, comunque:
    1) usare 'msize'
    2) usare malloc/calloc + 'placement new', e usare uno slot per tenere la dimensione del vettore.

    Se non sai di cosa sto parlando, e' corretto: sono tecniche di programmazione avanzate.
    Grazie mille per il consiglio, effettivamente non lo conosco ma come si utilizza?
  • Re: Come sapere la dimensione di un vettore allocato dinamicamente?

    Ti conviene inserire la struttura in una std::vector utilizzando push_back, se usi c++ (ma perché no?)
  • Re: Come sapere la dimensione di un vettore allocato dinamicamente?

    Grazie mille per i consigli !!!
  • Re: Come sapere la dimensione di un vettore allocato dinamicamente?

    Per gli utenti Linux taluni suggeriscono l'uso della funzione , dichiarata nel file d'intestazione "malloc.h" .
    Provandola, però, ottengo (come peraltro - mi pare - avverte anche la documentazione) valori superiori alla effettiva quantità di memoria allocata con le funzioni malloc/calloc.
Devi accedere o registrarti per scrivere nel forum
8 risposte