Je ne comprends as très bien iota

Bonour

je ne comprends pas très bien cette fonction telle qu'elle est donnée

itoa(packetnum++, val + 13, 10);

Je comprends qu'elle va convertire un int en string.
Donc packetnum va etre converti dans val.
Ce que je comprends c'est le 13

Que vient-il faire ici.

val a une longeur de 20
char val[20], donc pourquoi il met un 13
En écrivant ce post, je me demandais si le 13 n'était pas la fermeture du caractere \0.
Mais j'ai lu la doc et il est dit

Array in memory where to store the resulting null-terminated string.

Donc il est fermé automatiquement. Donc que vient faire le 13?

Merci pourvos lumières

Je me demande si c'est pas une question de position. Je constate que l'équivalence de packetnum se trouve à l'index 13 ...

Bonsoir,

voila ce que fait itoa

char *  itoa ( int value, char * str, int base );
Convert integer to string (non-standard function)
Converts an integer value to a null-terminated string using the specified base and stores the result in the array given by str parameter.

If base is 10 and value is negative, the resulting string is preceded with a minus sign (-). With any other base, value is always considered unsigned.

Dans ce cas la conversion se termine par le caractère NULL et on y ajoute 13 à la fin soit le retour chariot /r (ou CR selon convention).

Dans quelle utilité?

pierrot10:
Bonour

je ne comprends pas très bien cette fonction telle qu'elle est donnée

itoa(packetnum++, val + 13, 10);

val est un pointeur sur une chaîne de caractères. Donc val+13 pointe sur le 14ème caractère dans la chaîne.
On peut supposer que val est initialisée avec un certain contenu et on va placer la valeur packetnum incrémenté de 1 à cet emplacement.