DECOUPAGE CHEMIN FICHIER (FORUM)

Messages postés
371
Date d'inscription
dimanche 4 janvier 2004
Statut
Membre
Dernière intervention
23 septembre 2009
- - Dernière réponse : DeAtHCrAsH
Messages postés
2674
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
- 10 août 2005 à 22:43
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/33171-decoupage-chemin-fichier-forum

Afficher la suite 
xterminhate
Messages postés
371
Date d'inscription
dimanche 4 janvier 2004
Statut
Membre
Dernière intervention
23 septembre 2009
-
Rapide.... ;-)
BruNews
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
7 novembre 2014
13 -
Salut,

eh bien tu n'es pas en forme ?

Dans ta GetFileType(), il y a de la mémoire allouée par ta strtoupper(), je ne vois pas le free() correspondant. Comme quoi il ne faut jamais retourner de chaine allouée dans une func c'est source d'oubli de libération de mémoire à tout coup, faut passer buffer que la func remplira. De plus ça oblige à bosser avec le mode d'alloc de la func, on peut ne pas vouloir de la CRT.

En C on connait les pointeurs, pas besoin d'itérateurs comme dans GetFileName() et les autres, ça fait parcourit les chaines plusieurs fois. 1 seul compteur suffit pour controler la longueur qund tu écris afin d'éviter un overflow.

A revoir, bonne continuation.
steve_clamage
Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
2 -
Il manque des const et un entete (ctype.h pour toupper), le cast de la valeur retour de malloc n'est pas nécéssaire.
DeAtHCrAsH
Messages postés
2674
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
-
BruNews> Faut dire que je dors pas beaucoup ces temps ci (debout 5h, coucher 23h30)
Sinon pour les itérateurs je sais que j'aurais pu passer par les pointeurs en décellant le "Null-terminated string" mais le gars est un débutant. C'est plus dans l'optique de travailler sur des tableaux que sur des pointeurs.

Steve_Clamage> Pour le cast je suis obligé car je passe par un compilateur C++. Il n'accèpete pas de transtypé un (void *) en (char *).
Sinon pour l'entete ctype.h, elle peut etre ommise car déjà présente dans stdlib.h.
steve_clamage
Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
2 -
Pourquoi tu compiles en C++ ? Tu peux tres bien compiler en C, c'est juste une histoire d'extension du fichier source avec la plupart des edi.