Question sur les fonctions sous C

Fermé
Cissine - 26 avril 2009 à 21:42
 Cissine - 27 avril 2009 à 13:27
Bonjour,
1. Les déclarations de fonctions se passent du libellé de l'identifiant de leurs arguments : pourquoi ?

2. fscanf(f,"%d %d %d %d",&haut,&droit,&bas,&gauche)!=4){
Pourquoi les variables "haut", "bas", "droit" et "gauche" sont elles de type int alors que leurs valeurs se codent sur un char ?

3. char *chemin="T:SupportCours/Rep";
bmp_header entete_bmp;

ecrire_bmp(chemin,&entete_bmp,piece,p)!=0)

Pourquoi "&" devant "entete_bmp" et pas devant "chemin" ?

4. image[numero]=(unsigned char *) malloc (header->taille_image);
Pourquoi "malloc (sizeof(unsigned char)*header->taille_image))" n'est il pas nécessaire ?

et merci à vous .

2 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
26 avril 2009 à 21:45
Salut,

Tu peux commencer par nous donner tes réponses.
Sinon, on pourrait croire que tu nous demandes de faire l'exercice à ta place.
0
1 - Pour la question 1 je sais du tout la réponse.
2 - Pour la deuxième question :
fscanf te récupère un int à partir du contenu d'un fichier.et c'est à moi de convertir ensuite à ce que j'ai compris.
3 - Chemin est déjà un pointeur.
4- sizeof(unsigned char) = 1. A la compilation, ma ligne deviendra malloc(1*header->taille_image)).


c'est pas que je veux qu'on me fasse mon exer mais je veux juste qu'on m'aide à comprendre.
0