Bonjour,

Excusez moi pour mon chinois .

J'ai un fonction comme ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
void WritePhoneNum(byte posi, char * number){ ...code...}
donc quand je l'appel
WritePhoneNum(posi, number);
posi doit etre un byte et number doit etre un char.

Je ne comprends pas pourquoi quans je fais ceci ca fonction comme meme
à savoir que param est un char. Ci-dessous, je le transfomr en int

Sachez avant que sms_text et param sont des char qui sont déclarés plus haut dans mon code
char sms_text[20];
char param[3];
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
WritePhoneNum(atoi(param), sms_text);
Aussi j'ai d'abord fait un truc de encore plus chinois, mais qui marche
Je converti param en int puis en byte
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
WritePhoneNum((byte)(atoi(param)), sms_text);
J'ai donc deux question:
Pourquoi un int peut "remplacer un byte, comme dans le premier exemple.
Si c'est bien, ca me va très très bien.

Pourriez-vous me faire un commentaire sur ceci, en revanche. C'est pas du charbias qui fonctionne?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
WritePhoneNum((byte)(atoi(param)), sms_text);

Aussi, j'aimerais bien vous poser une autre question.

Si j'ai un char message[120] qui a pris une valeur de 119 caractere.

Comment puis bien vider ce char pour gagner de la memoire.

Es-ce que ceci suffit:
Qu'es-ce que ca fait exactement. A mon interpretation, il met le caravtere \0 en premiere position qui veut dire fin du string. Donc elle est vide.
Es-ce juste? Bon je ne donnerai pas un cours avec cette explication, mais ....
Merci