Bonjour,
Peut-on être sûr d'avoir un \0 final après un strncat et ce d'après la norme.
Ma question ne porte pas sur telle ou telle implémentation de la norme par tel compilateur, mais est-ce qu'il est précisé dans la norme quelquechose concernant \0 final.
Par exemple
Dans ce cas est-on sûr d'avoir un \0 en fin de chaine ou doit-on par sécurité l'ajouter.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 char machaine1[20]; char machaine2[20]; strcpy(machaine1,"ABCDEF"); strcpy(machaine2,"123456789A12345"); strncat(machaine1,machaine2,3);
Je viens récemment de me fourvoyer avec strncpy, je voudrais savoir, si le risque est le même avec strncat.
PS : J'ai cherché sur internet et sur le forum, mais j'ai trouvé des informations contradictoire :
a / on ne peut pas être certain d'avoir un \0
b/Il y a un \0 final
c/ce n'est pas précisé.
PPS: Je développe en C sous VMS, unix et windows avec le même code et des compilateurs différents.
Cordialement
Soazig
Partager