View Single Post
Old 14-12-2007, 16:01   #3
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16211
Quote:
Originariamente inviato da salvodel Guarda i messaggi
Quando lo lancio ottengo il seguente errore relativo alle righe dove utilizzo la funzione malloc
Codice:
c:\main.cpp(67) : error C2440: '=' : cannot convert from 'void *' to 'double *'
        Conversion from 'void*' to pointer to non-'void' requires an explicit cast
malloc, di per sé, restituisce un puntatore a void; e i puntatori a void vanno sempre convertiti esplicitamente, prima di essere riutilizzati.
Quote:
Se invece faccio
Codice:
VEDERE=(double *)malloc(10*sizeof(double));
come ho visto fare per un esempio "anacolo" mi da altri tipi di errore.
Quali tipi? Perché, questa porzione sembra corretta...
Quote:
Originariamente inviato da RaouL_BennetH Guarda i messaggi
Credo comunque che la malloc debba essere utilizzata come hai scritto nel secondo esempio:

Codice:
char *c;
c = malloc(50);

int *max;
max = (int *)malloc(max*syzeof(int));
Sì, conversioni sempre esplicite; anche se c è un puntatore a char.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Chi scherza col fuoco si brucia.
Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici
REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu
Ziosilvio è offline   Rispondi citando il messaggio o parte di esso