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

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

  1. 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
    1. ç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
      1. 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