Bonjour,
Je viens vous demander votre aide à propos d'un problème que je n'arrive pas à surmonter, malgré que j'ai lu les cours, la FAQ et les tuto de developpez.com et de mon IUT.
En fait, le projet traite d'un répertoire téléphonique où on a différentes fonctions et où les contacts sont triés par ordre alphabétique sur le nom dans un tableau de 100 postes. J'ai tout fait en commencant par le plus facile et je bloque maintenant sur la dernière fonction qui me permet d'ajouter par ordre alphabétique sur le nom un contact saisi.
Le problème est que j'ai testé plusieurs algo et au pire des cas, j'ai une erreur de segmentation, au meilleurs des cas, après un certains nombre de contacts, le tableau n'est plus trié du tout :-/
Je suis sûr que le truc est tout bête, mais je bloque dessus depuis plusieurs jours, je ne sais plus quoi faire, j'ai tenté bcp de choses et c'est pour ça que je poste ici...
Voici le code de la dernière version de ma fonction pour inscrire un contact, que j'ai reprise de mon cours en TD :
Voila, à l'aide s'il vous plaît. Je peux répondre à toutes les questions que vous aurez étant donné que je connais mon programme sur le bout des doigts... Je pourrai vous passer le code que vous voudrez. Merci encore !
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 int inscrire_contact( Contact (*tableau)[100], int (*pros)[100], int *NUMC, int *NUMP, CH15 nom, CH15 prenom, CH10 numero, char ctgrie ) { int i, indice; for(i = (*NUMC)-1; i >= 0 && strcmp(nom, tableau[i]->nom) < 0; i--) { (*tableau)[i] = (*tableau)[i-1]; } (*NUMC)++; i++; indice = i; printf("\n\t%d\n", i); strcpy((*tableau)[indice].nom, nom); strcpy((*tableau)[indice].prenom, prenom); strcpy((*tableau)[indice].numero, numero); (*tableau)[indice].ctgrie = ctgrie; //AJOUT DANS PROS si ctgrie == 'P' //... return indice; }
Partager