Problème de pointeur en C... [newbee]

Chris -  
 Utilisateur anonyme -
salut tout le monde,

bon, je ne suis pas un pro des pointeurs et j'ai un petit souci avec mon programme. Le voici:

le 1er fonctionne bien, et le 2eme core à l'endroit indiqué...

******************************************
static ENTRYB **entries;
ENTRY *hsearch(ENTRY item, ACTION action) {
int r;
ENTRYB *result;
r = hhash(item.key);
result = entries[r]; //--> ça marche
// ...
}

******************************************
static ENTRYB **lp_delayEntryb;
ENTRY *hsearch(ENTRY item, ACTION action, ENTRYB **av_entries) {
int r;
ENTRYB *result;
r = hhashBis(item.key);
result = av_entries[r]; //---> ça core!
// ...
}
*******************************************

alors bon, je me suis dit que c'était l'argument ... mais j'ai pas réussi à résoudre

si quelqu'un pouvait m'aider :(
Merci

3 réponses

Utilisateur anonyme
 
hello

Ca coince à la compilation ou dans le processus ?

Es-tu sûr que tu passes la bon 3ème argument lors de l'appel à ta fonction ? Qu'as tu écris ?
0
Chris
 
ça compile, mais à l'exécution, ça core... (segmentation fault)

j'ai essayé plusieurs trucs pour le 3eme arguement.
Dans le programme qui amrche, on declare un pointeur de pointeur en static, ce qui limite le nombre de "ENTRYB" à 1. Moi je veux en créer plusieurs donc j'ai retouché...

lors de l'appel de la fonction:
static ENTRYB **lp_delayEntryb;
ENTRY *lp_item;

lp_item=hsearch(lp_Entry, ENTER, lp_Entryb);
0
Utilisateur anonyme
 
Tu utilises entries[r] sans initialisation et ca marche ?

Peut etre alors que ton av_entries n'est pas correctement initialisé .

... ou alors ... tu demande l'indice r de ton tableau, or tu passes en paramètres un pointeur de pointeur.

essaie un *av_entries[r] ou av_entries[r][?] ou un changement sur cette valeur... le paramètre est peut-être correct .

bonne chance
0