Bonjour,

J'utilise le code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
char *path=getcwd(NULL,0);
strcat(path,":");
strcat(path,getenv("PATH"));
Ce code me permet tout simplement d'ajouter le dossier en cours au début de la variable d'environnement path. Cela fonctionne très bien.

Cependant la doc de strcat précise que la chaine de destination doit être suffisamment grande pour contenir l'ajout. Dans mon cas, ma chaine a été allouée par getcwd. Je présume que mon code fonctionne car l'allocation dépasse les besoins. Mais si je ne gère pas, je dois m'attendre à un beau bug.

Je pensais donc avant l'utilisation de strcat utiliser realloc en donnant la taille necessaire. (strlen sur path + strlen de getenv("PATH"))

Merci de vos retours.