invece di incrementare i valori puntati dai puntatori con i due + (ad esempio *v++), prova a fare normalmente cioè *v+=1....può sembrare strano ma se non ricordo male una volta ho avuto un problema simile.
invece di incrementare i valori puntati dai puntatori con i due + (ad esempio *v++), prova a fare normalmente cioè *v+=1....può sembrare strano ma se non ricordo male una volta ho avuto un problema simile.
Grazie XD,
Ho fatto come mi hai consigliato e adesso tutto funziona correttamente.
Non è strano, semplicemente l'operatore ++ ha priorità superiore rispetto a *, per cui se scrivi *v++ è come scrivere *(v++) (incrementa il puntatore e poi dereferenzia), quando quello che vuoi è, come ha scritto correttamente oregon, (*v)++ - dereferenzia il puntatore e incrementa il valore a cui puntava.
Amaro C++, il gusto pieno dell'undefined behavior.
Ok questo spiega tutto :-) grazie a tutti,
Per curiosità personale, ho provato a fare lo stesso codice ma in c++ ed ho notato che gli array char non riconoscono gli spazi, ho cercato di informarmi su come poter fare ma non ho trovato soluzioni alternative , qualcuno ha qualche idea?