e forzato a void ?
Come fai ?
Che stai dicendo ?
e forzato a void ?
Come fai ?
Che stai dicendo ?
No MP tecnici (non rispondo nemmeno!), usa il forum.
e è un tipo di dato strutturato chiamato clause che passo come parametro alla funzione v_ins.
codice:void v_ins (vec * v, void* e) { v->ptr[v->index++] = e; }
Mi dispiace, ma stai facendo un bel po' di confusione ...
Cosi' come stai raccontando le cose, non si capisce nulla, ne' di come sta la situazione attuale, ne' di dove vuoi arrivare ...
No MP tecnici (non rispondo nemmeno!), usa il forum.
Ok, facciamo le cose un passo alla volta (perchè dev-c++ non m aiuta in questo senso).
se io scrivo questo codice:
significa che sto allocando un certo numero num_el di byte in memoria, giusto?codice:v->ptr = (void **) malloc(num_el);
Siccome però il tipo di dato è void cosa succede in memoria??
Cioè io alloco un certo num_el di elementi che hanno peso??
Hai allocato num_el bytes.
Ma ptr di che tipo e'?
No MP tecnici (non rispondo nemmeno!), usa il forum.
void** ptr;
è un puntatore a puntatore di tipo void
Okay ... hai quel puntatore e i tuoi byte allocati ... quindi ?
No MP tecnici (non rispondo nemmeno!), usa il forum.
Intanto: è corretto come ho fatto?
Poi:
in questa funzione passo l'inidirizzo di e (che nei parametri formali è void, ma in quelli attuali è un tipo strutturato chiamato clause).codice:void v_ins (vec * v, void* e) { v->ptr[0] = e; }
L'assegnamento che faccio è corretto??
Non devo allocare memoria per ptr[0]?
Stai inserendo un puntatore in ptr[0] e quindi devi allocare lo spazio per un puntatore alla struttura ...Originariamente inviato da Downloader
Non devo allocare memoria per ptr[0]?
No MP tecnici (non rispondo nemmeno!), usa il forum.
Ma come mai Dev-C++ non mi dice nulla e mi fa eseguire il programma correttamente?
Mi mettono confusione queste cose...
Riprendendo la tua risposta:
ma se il tipo di dato di e è void, cosa vado ad allocare??
mi hai detto che se non so il tipo del dato non posso fare allocazioni.