Char et caractère NULL

Signaler
Messages postés
124
Date d'inscription
jeudi 13 juin 2002
Statut
Membre
Dernière intervention
30 juillet 2003
-
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
Lorsque je déclare :
char Texte[16];

est ce que je déclare :
- une variable de type char de 16 caractères PLUS le caractère NULL
ou
- une variable de type char de 16 caractères DONT le caractère NULL

je sais c'est une question conne mais bon...

6 réponses

Messages postés
547
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
7 octobre 2007
1
tu déclare un espace mémoire de la taille d'un char * 16
et c'est tout. A toi de gérer ce que tu met dedans
exemple

strcpy(Texte, "toto");
le caractère de valeur 0 se trouveras à l'index 4 de ton tableau;
par contre strcpy(Texte, "toto est grand !")
le carctère 0 indiquant la fin de la chaine seras copié en dehors des limites du tableau. Et la ça fais mal :-(

A+
Fred
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
28
tu RESERVES 16 octets et rien de plus donc si tu y entres une chaine de caracteres elle ne devra pas exceder 15 caracteres + le NULL final a l'adresse Texte[15].
BruNews, ciao...
Messages postés
124
Date d'inscription
jeudi 13 juin 2002
Statut
Membre
Dernière intervention
30 juillet 2003

Quand j'utilise

char Texte[16];
GetDlgItemText(hwnd,IDC_TEXT,Texte,16);

m'a chaine Texte a l'air correcte, donc je pense que GetDlgItemText a en fait pris les 15 premiers caractères de mon Editbox (IDC_TEXT) et a terminé par un carcatère null.
Est ce le cas ?
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
28
YES !!!
BruNews, ciao...
Messages postés
124
Date d'inscription
jeudi 13 juin 2002
Statut
Membre
Dernière intervention
30 juillet 2003

C'est bien fait quand meme le C++ !
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
28
ok mais dans le cas present, c'est surtout win32 qui est bien fait.
BruNews, ciao...