Bonjour, étant débutant en C, je m'entraines sur ce langage, j'ai trouver un énoncé d'un examen antérieur de ma faculté et j'aimerais le résoudre mais je ni parvient pas. Si quelqu'un pouvait m'aider.
On me demande dans le cadre de gestion d'un carnet d'adresses, de concevoir une fonction pour obtenir la liste des adresses correspondant à un nom de famille donné. Le carnet d'adresse pouvant contenir plusieurs adresses correspondant à un même nom de famille. On considère les deux fonctions suivants comme données:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 /*Returns the number of addresses corresponding to the family name * name must be a pointer to a string */ int nb_occ(char* name)Sur base de ces 2 fonctions, on nous demande de fournir une fonction qui renvoie l'ensemble des adresses correspondant à unnom donné, dans un tableau, quelque soit le nombre d'adresses. Voici la signature des fonctions a implémenter:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 /*When several address match the same family name, we refer to each of them seperataly by using their index. *This function store a unique address identified by name and index in the structured pointed to by address. *Valid values for index are from 0 to nb_occ-1(name)-1. *address must be a valid pointer to a structure to be filled by this function. *name must be a pointer to a string. *Returns 0 in case of success, or -1 in case of error. *If an error occurs, errno is set to the appropriate error code. */ int get_addr_at(char* name, int index, struct addr* address)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 /* Creates an array containing all the addresses matching whith the name name. *A pointer to the created array is stored inside addresses. *Returns the number of stored addresses in case of succes or -1 in case of failure. *name must be a pointer to a string. */ int get_addr_array(char* name, struct addr** addresses)En définitive ce que l'on nous demande de faire c'est:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 /* Release the memory associated to the address array addresses. *Returns 0 in cases of succes, 61 in case of error */ int free_addr_array(struct addr** addresses)
- - Définir la structure addr. Celle_ci ne contiendra que les trois chaînes de caractères suivantes: first_name, last_name, city. Ces trois chaînes auront une longueur fice de 50 caractères.
- Implémenter complètement les fonctions get_addr_array et free_addr_array
- Implémenter une fonction main destinée à tester les fonctions. elle devra effectuer une requête pour le nom "dupont". Dans cette onfction le tableau d'adresses doit etre récupérer grâce à un appel à get_addr_array. Ensuite libérer la méoire de celui-ci.
Merci d'avance
Partager