wislam2007
Messages postés62Date d'inscriptiondimanche 1 octobre 2006StatutMembreDernière intervention21 mars 2010
-
11 août 2009 à 10:26
wislam2007
Messages postés62Date d'inscriptiondimanche 1 octobre 2006StatutMembreDernière intervention21 mars 2010
-
12 août 2009 à 10:02
salut
j'ai un souci pour afficher le contenu d'un variable de type char *.
de l'aide svp.
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 11 août 2009 à 11:41
Je pense qu'il vaut mieux faire : printf("%s",chaine);
Car si par hasard la chaine contient des caractères %, ça risque d'afficher un peu n'importe quoi.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 11 août 2009 à 13:07
Une méthode qui renvoit un char* c'est suspect déja. Qui a fait l'allocation pour ce char*? Si c'est alloué en local dans la méthode appelée, c'est normal que ca ne fonctionne pas.
En général tu passes ton buffer en paramètre, et la méthode appelée le remplit.
_____________________________________
Vous n’avez pas trouvé la réponse que vous recherchez ?
Kotomine
Messages postés112Date d'inscriptionlundi 29 juin 2009StatutMembreDernière intervention 5 novembre 2009 11 août 2009 à 14:09
printf(chaine)
Non, non ,non ... NON !
Evitez même de penser à ça.
A force de le voir, on finit par le faire, et Bonjour les trous de sécurité !
N'oubliez pas que le premier argument de printf est INTERPRETE !
Faites
const char *machar = "pouet tagada tsointsoin";
printf("%s",machar);
Merci !
; I'm just keeping the hopeless cross to increase the meaninglessness
cs_ghuysmans99
Messages postés3983Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 11 août 2009 à 18:37
Pour le printf() tout ce qu'on risque s'il y a un %d ou autre qui traine c'est un crash stack (le return se fait on-ne-sait-où). Mais bon quand on sait pas à quoi s'attendre c'est vrai que printf("%s",chaine) est mieux. On va dire que j'y avais plus pensé
Kotomine
Messages postés112Date d'inscriptionlundi 29 juin 2009StatutMembreDernière intervention 5 novembre 2009 12 août 2009 à 09:31
Un petit passage pour montrer ce qu'on peut faire avec un printf(c) -> lire et écrire ou on veut dans la mémoire de ton programme... pour peu que c provienne du réseau hop tu prend le controle d'une machine en écrivant du code
assembleur apres le printf()
wislam2007
Messages postés62Date d'inscriptiondimanche 1 octobre 2006StatutMembreDernière intervention21 mars 20106 12 août 2009 à 10:02
vecchio56>
oui c'est ok pour la testé dans un programme, mais si cette fonction fait partie des fonction exportées dans un dll, comment doit-je appelé cette fonction?
quand je fait :
char* c = fct();
ça donne pas les résultat souhaité.
$est ce que je doit passer par un type spécial?