Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 26

Discussione: [C] sizeof e tipo void

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    726

    [C] sizeof e tipo void

    Una domanda:

    è corretta la seguente allocazione di memoria?

    codice:
    v->ptr = (void **) malloc(sizeof(void) * num_el);
    ptr è un doppio puntatore a void.


    Se provo a compilare il sorgente contenente questa riga di codice con il Dev-C++ non ho nessun tipo di errore, se invece lo faccio usando g++ mi viene detto che non posso fare un sizeof ti un tipo void.

    Grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Non ha senso un typeof di un void ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    726
    Ehh e allora come faccio??
    Devo allocare memoria, ma non so quanto spazio riservare per ogni singolo elemento.

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Originariamente inviato da Downloader
    Ehh e allora come faccio??
    Devo allocare memoria, ma non so quanto spazio riservare per ogni singolo elemento.
    E' una contraddizione in termini ... devi allocare memoria ma non sai quanta ... cosa ti posso dire?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    726
    Mi spiego meglio:
    so quanto devo allocare, ovvero num_el, ma se non so il tipo visto che è void come faccio a fare una allocazione?

  6. #6
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    ma qual è il tipo di dato che vuoi allocare? come ti è stato detto void non è un tipo!
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Ma scusa ... num_el presumo sia il numero di elementi da allocare ... se non conosci il tipo, come li tratti in seguito ...?

    Forse non ti e' chiaro il fatto che, finche' non conosci il tipo, NON puoi allocare nulla ... ovvero, la conoscenza del tipo e' NECESSARIA.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    726
    Ehh si, ma io devo allocare memoria su un puntatore cosi definito:

    codice:
    void** ptr;
    Non ho altre informazioni.

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Allora non lo fai ...

    Forse ti sfugge che stai chiedendo l'impossibile ... forse e' meglio che spieghi con maggiori dettagli il problema ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    726
    Ti faccio solo una domanda:

    se io scrivessi:
    codice:
     v->ptr = (void **) malloc(num_el);
    e assumessi che nul_el vale 5 allora io starei allocando 5 byte in memoria, giusto??

    Ok, mettiamo il caso che l'allocazione sia corretta, se per inserire un elemento nel vettore scrivessi cosi:
    codice:
    v->ptr[0] = e;
    dove e è un tipo di dato forzato a void.

    In memoria cosa accadrebbe??
    L'inserimento dell'elemento nel vettore dovrebbe risultare corretta, giusto?

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