Bonjour à tous quelqu'un peut me dire pourquoi la fonction suivante plante
.Code:sprintf(pixVal,"I:\\lobita\\DAT\\pixit_%%SITE%%_%s.dat",argv[4]);
Merci de votre soutien.
Version imprimable
Bonjour à tous quelqu'un peut me dire pourquoi la fonction suivante plante
.Code:sprintf(pixVal,"I:\\lobita\\DAT\\pixit_%%SITE%%_%s.dat",argv[4]);
Merci de votre soutien.
tu ne nous aides pas beaucoup !!!
argv[4] c'est peut-etre pas une chaine.
Ca plante, ok! mais ca dit quoi ?
Sur quel OS ?
Avec si peu d'infos, non. Mais à vue de nez, il y a quand même deux problèmes potentiels :
- pixVal est mal alloué ou trop petit ;
- Tu n'as pas passé au moins quatre argument au nom de ton programme (donc argv[4] n'existe pas).
Avec si peu, on ne peut rien dire. La première chose à faire est de vérifier que le tableau pixVal est suffisamment grand.
Vive les réponses simultanées qui disent quasi la même chose. :mouarf:
Je ne peut pas tester mais ne faudrait il pas déspécialiser les %
Parce que la je vois :
"I:\\lobita\\DAT\\pixit_%%SITE%%_%s.dat"
Autant pour moi ^^
Le C et moi ça fait longtemps =/
Et je me souvient que je trouvais ça absurde d'avoir deux caractères de déspécifications ^^ (le \ et le %)
Code:snprintf(pixVal, sizeof pixVal, "I:\\lobita\\DAT\\pixit_%s_%s.dat", getenv("SITE"), argv[4]);
Merci pour tous vos suggestions le problème était au niveau de la taille de la mémoire de pixVal, elle n'était pas suffisante pour la chaine.