Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di /dev/null
    Registrato dal
    May 2004
    Messaggi
    1,936

    [C++] warning: deleting `void*' is undefined

    Stavo portando un mio programma in C verso il C++...
    Le miriadi di problemi incontrati fin ora li ho risolti tutti... ma ora mi spunta davanti un...
    codice:
    warning: deleting `void*' is undefined
    ...Che e' sta roba? :master:
    Credo che sia per il fatto che non esiste un operatore delete che supporti il tipo void*...

    Che mi consigliate di fare?
    Vabbe' che e' solo un warning... Pero' vorrei tenere il programma il piu' possibile pulito
    Preferirei non dover castare quella variabile in un altro tipo, se possibile


    Ultima modifica ad opera dell'utente /dev/null il 01-01-0001 alle 00:00

  2. #2
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  3. #3
    Utente di HTML.it L'avatar di /dev/null
    Registrato dal
    May 2004
    Messaggi
    1,936
    In quei forums dicono solo che e' una cosa che non andrebbe fatta... Ma io la dovrei fare lo stesso
    Spiego un po' il mio problema
    Uso delle funzioni di libreria... Che richiamano una funzione-distruttore che devo dichiarare io. (Usano una funzione distruttore invece che il distruttore di una classe poiche' sono librerie nate per il C...) e passano ad essa il void* che devo deallocare...
    Non posso fare a meno di cio' dato che sono funzioni standard posix e mi servono per usare variabili globali rientranti (non ne conosco altre per fare cio')... Quindi... Che faccio?
    Ultima modifica ad opera dell'utente /dev/null il 01-01-0001 alle 00:00

  4. #4
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    E un errore eseguire il delete su un void*

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  5. #5
    Utente di HTML.it L'avatar di /dev/null
    Registrato dal
    May 2004
    Messaggi
    1,936
    Originariamente inviato da anx721
    E un errore eseguire il delete su un void*
    Si', l'avevo capito... E appunto per questo ho chiesto come modificarlo, dato che devo farlo per forza...
    Al limite potrei castare quella variabile in un altro tipo ed eseguirci la delete... Ma se devo ricorrere a simili trucchetti mi tengo l'warning...
    Ultima modifica ad opera dell'utente /dev/null il 01-01-0001 alle 00:00

  6. #6
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Originariamente inviato da /dev/null
    Si', l'avevo capito... E appunto per questo ho chiesto come modificarlo, dato che devo farlo per forza...
    Al limite potrei castare quella variabile in un altro tipo ed eseguirci la delete... Ma se devo ricorrere a simili trucchetti mi tengo l'warning...

    Ma in questo modo il compilatore conosce il tipo della variabile su cui fai il delete

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  7. #7
    Utente di HTML.it L'avatar di /dev/null
    Registrato dal
    May 2004
    Messaggi
    1,936
    Originariamente inviato da anx721
    Ma in questo modo il compilatore conosce il tipo della variabile su cui fai il delete
    Gia'...
    Speravo comunque che fosse possibile overloadare l'operatore delete per i tipi void (ma non penso)...
    O creare un distruttore da far usare per i void
    Non e' possibile fare nulla di simile?
    Ultima modifica ad opera dell'utente /dev/null il 01-01-0001 alle 00:00

  8. #8
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    oppure potresti provare ad usare il "vecchio" free() del C per questo caso particolare.
    Attenzione che però, ovviemente, bisogna allocare con malloc e non con new.

    Sempre che non dia lo stesso problema.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

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.