Vider un tableau de char avec '\0'.
Si j'utilise le caractère '\0' pour vider un tableau de char :
Code:
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:
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.