Bonjour
J ai une petite question, par rapport a ma fonction, je l est ecrite de 2 facon différente et elle marche bien dans les deux cas mais laquelle est la mieux ? et quel est la réel différence ? voila la premiere variante :
et voila la deuxieme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 struct stat *stat_fichier(char *nomFichier) { struct stat *fichier; fichier = malloc(sizeof(struct stat)); if(!fichier) { fprintf(stderr,"Allocation impossible\n"); exit(EXIT_FAILURE); } if(stat(nomFichier, fichier) != 0) { perror("fstat "); exit(EXIT_FAILURE); } return fichier; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 struct stat *stat_fichier(char *nomFichier) { void *fichier = NULL; fichier = (struct stat*)malloc(sizeof(struct stat)); if(!fichier) { fprintf(stderr,"Allocation impossible\n"); exit(EXIT_FAILURE); } if(stat(nomFichier, fichier) != 0) { perror("fstat "); exit(EXIT_FAILURE); } return fichier; }
et dans la main je l apel comme ca:
info est alloué au debut donc tous marche dans les deux cas, mais quelle difference il y a?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 info = stat_fichier("info.txt"); printf("taille du fichier : %lu \n", info->st_size);
et une autre question a cette ligne :
ca marche tres bien sans le cast comme ca :
Code : Sélectionner tout - Visualiser dans une fenêtre à part fichier = (struct stat*)malloc(sizeof(struct stat));
J ai lus des documents ou il est dit que c est obligatoire , et dans d autre que c' est un manque de lisibilité pour le code et que ca sert a rien ? qu est ce qu il en est vraiment ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part fichier = malloc(sizeof(struct stat));
Merci a vous.
Partager