Bonsoir,
Merci pour la réponse

Je viens de lire que le '\0' est le caractère qui même si on ne le voit pas, fini chaque chaîne de caractère implicitement:
- comme justement je travaille sur des chaînes de caractères

, ça me fait le '\n' en moins a envoyer ...
Pour le grapillage : 36+126=162 octets pour 2 instructions

A l'échelle d'un programme, je trouve ça

Pour le char[], la 2° solution, la taille divisée par 2, ça me plait

Euh, une dernière remarque
ça ne fonctionne pas 
A pars le if(c == 10) que j'ai repris de ta fonction sans chercher à comprendre je vois pas ce qui pourrai planter ...
Ben justement, vu que j'envoie le '\n' juste après (...le '\0' que je ne savais pas qu'on envoyais!), on rentre jamais dans cette partie de boucle...
-La 2°solution, bien la fct "memset" pour faire une init de chaine, mais la fct "decode_rx" ne marche pas comme mon prg, je peux pas faire de test de la chaine
complète dans la suite, je vais voir ça de plus près...