La riga con sizeof(strano) stampa "4" nella shell, appunto la dimensione del puntatore, e ci sono. Il codice che mi hai consigliato di provare in effetti stampa caratteri sbagliati rispetto al precedente. Perciò quando vorrei stampare la stringa intera strano, in realtà stampo solo il contenuto del puntatore (che dipende dalla dimensione di questo). Le prime quattro lettere accentate sono giuste, quindi, se per ipotesi potessi scegliermi la dimensione del puntatore e imporla pari a 5, otterrei "èéàòù" nella shell. Aggiungendo una riga con cout << sizeof(res1) appare invece 4096, appunto la dimensione in byte del buffer res1. La cosa interessante è che adesso, provando a modificare ad esempio a 6, 7, 8 ecc il numero di byte di res1, ottengo via via più lettere della stringa (con caratteri corretti) stampati a console!![]()

Rispondi quotando
