A voir également:
- Erreur lors du tri d'un tableau(malloc) en C
- Tableau croisé dynamique - Guide
- Erreur 0x80070643 - Guide
- Tableau ascii - Guide
- Comment faire un tableau - Guide
- Trier tableau excel - Guide
6 réponses
jaky1212
Messages postés
126
Date d'inscription
mardi 25 août 2009
Statut
Membre
Dernière intervention
4 mars 2013
8
26 août 2009 à 08:35
26 août 2009 à 08:35
bonjour
ptr_tab = (struct compte_index*) malloc(nbre_vrais_enreg*sizeof(struct compte_index));
nbre_vrais_enreg est un int ou long en variable globale ?
ptr_tab = (struct compte_index*) malloc(nbre_vrais_enreg*sizeof(struct compte_index));
nbre_vrais_enreg est un int ou long en variable globale ?
C'est un int en variable globale qui est correspond au nombre d'enregistrements dans le fichier.
Voici également les structures utilisées dans cette fonction:
struct numero
{
int bank_id;
long num;
int check_digit;
};
struct compte_index
{
struct numero num_de_cpt;
int position;
};
Voici également les structures utilisées dans cette fonction:
struct numero
{
int bank_id;
long num;
int check_digit;
};
struct compte_index
{
struct numero num_de_cpt;
int position;
};
jaky1212
Messages postés
126
Date d'inscription
mardi 25 août 2009
Statut
Membre
Dernière intervention
4 mars 2013
8
26 août 2009 à 08:52
26 août 2009 à 08:52
le compilateur indique une ligne en particulier ? avec le debogage sa donne quoi ?
Non pas de ligne en particulier. Ca compile c'est pendant l'exécution que cela plante. Je n'ai pas réussi à isoler le problème avec le débogage.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jaky1212
Messages postés
126
Date d'inscription
mardi 25 août 2009
Statut
Membre
Dernière intervention
4 mars 2013
8
26 août 2009 à 08:58
26 août 2009 à 08:58
as tu essayé :
ptr_tab = (struct compte_index*) calloc(nbre_vrais_enreg,sizeof(struct compte_index));
au lieu de
ptr_tab = (struct compte_index*) malloc(nbre_vrais_enreg*sizeof(struct compte_index));
ptr_tab = (struct compte_index*) calloc(nbre_vrais_enreg,sizeof(struct compte_index));
au lieu de
ptr_tab = (struct compte_index*) malloc(nbre_vrais_enreg*sizeof(struct compte_index));
Il y a 2 problèmes dans ton algorithme:
- 'fseek...' te positionne à la fin du premier enregistrement: le premier enregistrement ne sera donc pas lu et le dernier sera n'importe quoi.
- supposons maintenant que dans la boucle while (debut<=fin), tu aies à un moment ou un autre 'debut = fin', alors la boucle se poursuit et le test if (debut == fin) te fait passer soit dans pos = milieu-1 soit dans pos = milieu et la boucle continue ad vitam eternam... car 'pos' n'est pas utilisé.
Bonne continuation.
- 'fseek...' te positionne à la fin du premier enregistrement: le premier enregistrement ne sera donc pas lu et le dernier sera n'importe quoi.
- supposons maintenant que dans la boucle while (debut<=fin), tu aies à un moment ou un autre 'debut = fin', alors la boucle se poursuit et le test if (debut == fin) te fait passer soit dans pos = milieu-1 soit dans pos = milieu et la boucle continue ad vitam eternam... car 'pos' n'est pas utilisé.
Bonne continuation.