[MontelLUG] Acrobazie puntatori in C
Samuele
samuele.zanin a tiscali.it
Gio 7 Lug 2016 17:49:44 CEST
Il 07/07/2016 17:25, Andrea Della Regina ha scritto:
> Ciao Samuele,
>
> ti consiglio di debuggare usando un debugger (gdb ad esempio),
Non se pol.
> se nella tua piattaforma non è disponibile è meglio che prima ti
> adatti il programma per compilare ed eseguire sul tuo PC.
Sarebbe una guerra.
>
> Ciò detto, direi che quest'istruzioni va bene:
> BufferDati = &BufferLog[20];
>
> Ma forse è più leggibile e facile da manutenere:
> BufferDati = BufferLog+ 20;
Ok, variato.
>
> Infine, l'istruzione incriminata:
> printf("Buffer: %30.30s\n", BufferDati);
>
> Quello che fa è formattare la stringa null-terminated che inizia dove
> punta BufferDati:
> - identandola a destra;
> - paddandola di spazi;
> - incolonnandola in uno spazio di come minimo di 30 caratteri;
> - troncandola a 30 se la stringa è più lunga di 30 caratteri.
Ehm... mi sono dimenticato il meno.
>
> Non mi è ben chiaro cosa volevi verificare, ma se hai dubbi sulla
> stringa di formattazione del comando printf, è meglio che prima lo
> provi con l'istruzione da shell "printf":
> printf "Buffer: %30.30s\n" "1;T"
L'idea era di stampare solo i primi 30 caratteri di una stringa molto
lunga.
La fregatura qui è che a sto punto, io ho solo "1;T" e mi manca tutto il
resto che si perde da qualche parti.
Maggiori informazioni sulla lista
montellug