M'enfin, qu'est-ce que strlen() a à voir là-dedans ?Citation:
Envoyé par seriousme
Version imprimable
M'enfin, qu'est-ce que strlen() a à voir là-dedans ?Citation:
Envoyé par seriousme
Parce que je croyais que "chaine" voulais dire "char*" ou "char[]".Citation:
Envoyé par Emmanuel Delahaye
Et ? Tu crois que strlen() va retourner "la taille du pointeur" ?Citation:
Envoyé par seriousme
Je rajoute la ponctuation et des mots pour clarifier:Citation:
Envoyé par Emmanuel Delahaye
Si la chaine est valide alors c'est "strlen" qu'il faut utiliser; et pas "sizeof",qui ce dernier renvoie la taille du pointeur.
OK. Ecrire en français correct, lisible et compréhensible peut éviter des guerres !Citation:
Envoyé par seriousme
Mais c'est encore au moins une demi-connerie. En effet, la validité de la chaine n'est évidemment pas garantie, puisque c'est un tableau de destination. Le strlen() est donc un bug (comportement indéfini).
C'est pour ça que j'ai mis le "si".Citation:
Envoyé par Emmanuel Delahaye
Et comment tu le sais ?Citation:
Envoyé par seriousme
Montre moi comment strlen() est utilisable dans ce contexte ?
On ne le sait pas et la vérification doit donc se faire en amont de l'appel à la fonction.Citation:
Envoyé par Emmanuel Delahaye
Usine à gaz, non ? Et pour quel bénéfice ? La solution viable est évidemment de passer la taille, comme déjà indiqué...Citation:
Envoyé par seriousme