Si j'utilise le caractère '\0' pour vider un tableau de char :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
char tab1[2+1]="A1";
tab1[0]='\0';
printf("%s",tab1);
printf("\n");
printf("%c",tab1[0]);
printf("\n");
printf("%c",tab1[1]);
printf("\n");
printf("%c",tab1[2]);
Il n'y a plus de pseudo-string ?? Mais il reste le caractère "1" ??
Le caractère '\0' marque la fin de quoi au juste, de la pseudo-string mais pas des caractères qui la compose ou plus précisément et dans ce cas, les trois emplacements mémoire de tab1 contiennent chacun dans l'ordre '\0', 1 et '\0'.
Avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
memset(tab1,0,2);
//ou
bzero(tab1,2);
Tout à l'air clean ou j'ai raté quelque chose en réalité ?
Et est-il préférable en dernier argument de préciser le nombre total d’octet, '\0' compris soit (tab1,0,3) & (tab1,3) ?
Les octets \0 valent 0, NULL ou je m’égares ?

Bonne année à toutes et à tous.