[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