Ciao raga.
Guardate questo pezzo di codice:
int *ArrayInteri[10];
ArrayInteri[0] = new int;
ArrayInteri[0] = (int *)123;
i = (int)ArrayInteri[0];
delete ArrayInteri[0];
Mi da un Access Violation sulla 'delete ArrayInteri[0]'.
Cosa sbaglio ???
Ciao raga.
Guardate questo pezzo di codice:
int *ArrayInteri[10];
ArrayInteri[0] = new int;
ArrayInteri[0] = (int *)123;
i = (int)ArrayInteri[0];
delete ArrayInteri[0];
Mi da un Access Violation sulla 'delete ArrayInteri[0]'.
Cosa sbaglio ???
cosi', cambia qualcosa?Originariamente inviato da Kreator
Ciao raga.
Guardate questo pezzo di codice:
int *ArrayInteri[10];
ArrayInteri[0] = new int;
*ArrayInteri[0] = 123;
i = *ArrayInteri[0];
delete ArrayInteri[0];
Mi da un Access Violation sulla 'delete ArrayInteri[0]'.
Cosa sbaglio ???
perfettissimo adesso funziona.
Praticamente devo deferenziare con '*'.
Grazie mille.
Ciaoo
prima credo che andavi a cambiare l'indirizzo puntato dal puntatoreOriginariamente inviato da Kreator
perfettissimo adesso funziona.
Praticamente devo deferenziare con '*'.
Grazie mille.
Ciaoo
con l'espressione
ArrayInteri[0] = (int *)123;
ma cosi' crei un numero 123 che e' fisso e non creato a runtime
infatti stai dicendo a c
memorizza 123
dai l'indirizzo al puntatore
e fin qui tutto ok
la delete pero' non puo' ripulire quel codice poiche' fa riferimento
a una locazione protetta..
tutto chiaro?
yes.
Infatti andavo a cambiare l'indirizzo.
Sugli interi e' tutto chiaro.
Pero' sulle stringhe ho bisogno di una illuminazione
Riproponiamo lo stesso esempio, invece che con gli interi con le stringhe:
char *buffer;
char *ArrayInteri[10];
ArrayCaratteri[0] = new char[100];
*ArrayCaratteri[0] = "ciao a tutti ...."; <<--- Errore
buffer = ArrayCaratteri[10];
delete ArrayCaratteri[0];
In questo caso mi da un errore sul casting.
Come lo semplificheresti ?
*ArrayCaratteri[0] = "ciao a tutti ...."; <<---
qui non devi invece deferenziare perche "XXXXX" in c è di tipo:
const char *
ovvero è un puntatore (costante) a char, cosi come Array[0] è un char *
Sun Certified Java Programmer
EUCIP Core Level Certified
European Certification of Informatics Professionals