Beh ... e' un elemento di base per la gestione delle stringhe C ... devi tenerlo sempre presente ...Originariamente inviato da jabjoint
Era di questo terminatore che avevo fondamentalmente bisogno: str[k]=0; di cui non avrei mai immaginato l' esistenza!
Che tu non ci abbia mai avuto a che fare vuol dire che hai saltato il capitolo delle stringhe del tuo libro di C. E prima dei puntatori, le stringhe le devi sapere usare ...
Non e' solo questo ... devi indicare 15 elementi nell'array e non 14.Originariamente inviato da jabjoint
Nel punto 1. per quanto riguarda gli elementi ci avevo pensato, non sono 14, sono 15 da 0-14.
- Ah ho capito dovevo fare >15 non >=15.
Non hai errori ma un memory leak a runtime di cui non ti accorgi perche' il programma e' molto semplice e termina prima che possa dare problemi.Originariamente inviato da jabjoint
Nel punto 4 non ho capito perchè è sbagliato, Il compilatore non mi da errore, e sembra assegnare correttamente il valore?
Quando allochi memoria tramite un puntatore, in quest'ultimo viene passato l'indirizzo del blocco di memoria allocato che tu puoi usare copiandoci la stringa. Se invece in seguito associ il puntatore ad una stringa costante, perdi il valore del primo puntatore e gli assegni il nuovo. L'area allocata in partenza non e' piu' liberabile da cui il memory leak.
In realta' in questo codice manca la free che dovrebbe sempre essere usata quando il blocco di memoria non serve piu'. Ti accorgeresti dell'errore.
Rivedi l'uso dei puntatori.
Certo ... quando avro' un po' di tempo te ne proporro' una versione un po' piu' "sistemata" ... a meno che non mi preceda qualche altro "volenteroso" ...Originariamente inviato da jabjoint
Per l' ottimizzazione se puoi dirmi come migliorarlo ti ringrazio!