O forse no
Ho un dubbio che forse potete aiutarmi a risolvere
Oggi in mensa con un collega si pensava (e basta, no pc in ditta) ad accorciare una stringa, tipicamente durante un dedupe
Posto di essere arrivati al carattere da togliere (puntato dal puntatore 'h', si pensava una cosa del genere:
while (*h)
{
*h=*h+1;
h++;
}
Che scorre la stringa e riporta indietro un carattere
Poi abbiamo pensato di compattare:
while(*h=*h+1)
{
h++;
}
E fin qui nessuno dubbio...
Adesso viene il bello:
while(*h=*h++),
Il dubbio:
Non sappiamo se questo porta oppure no ad un undefined behaviour
Perché secondo me no
Secondo il mio collega sì
Lui dice che non si può modificare lo stesso oggetto due volte nella stessa espressione
Io dico che si modificano DUE oggetti: il puntato E il puntatore...
Senza PC non possiamo provare....
Ecco quindi che chiediamo aiuto
Per essere molto chiari:
La cosa è importantissima, c'è di mezzo un caffè da pagare...