30/11/09 15:28
Stefano
scusate se continuo con domande cosi "insulse" ma non ho operato mai in questo modo, cosi è un modo per imparare.
E' valido un assegnamento del tipo char * puntatore = new char; ? O è piu legale char * puntatore = new char[N];
aaa
30/11/09 16:19
lorenzo
non puo andare a tentoni...cercati un tutorial sull'allocazion dinamica della memoria in C++ se vuoi approfondire.
comunque, per farla breve, quando usi la new con un tipo primitivo:
char *c = new char;
è come se stessi usando la malloc istanziando una grandezza di sizeof(char)
se fai
char *a = new char[100];
è uguale alla malloc con sizeof(char) * 100
se fai la new con una classe C++ viene invocato il costruttore della classe
Ricordati che ogni cosa che instanzi con la new la devi distruggere con la delete.
Per i miei esempi:
delete c;
delete[] a;
Ultima modifica effettuata da lorenzo 30/11/09 16:20
aaa
30/11/09 18:40
lorenzo
ok, vero che on bisognerebbe cambiare un programma solo perché non gira su una piattaforma. Però in questo caso l'uso della malloc è deprecato e pericoloso. Il C++ offre la new, uno strumento più sicuro e di più facile utilizzo.
Il fatto che il compilatore c++ offra anche la retrocompatibilità con il C è una "chicca" in più che a mio parere è pericolosa e non rende facile imparare il C++ per i "novizi"
aaa