N'est pas pile d, malloc d or (récemment) libre avais, lorsque toutes les variables est utilisé

Lorsque j'appelle cette fonction:

int within(struct key *node, int *value) {                      
  int length = len(node);                                       
  if ((value <= node[length-1].data) && (value >= node[0].data)) //Problematic line
    return 0;                                                   
  else if (value > node[length-1].data)                         
    return 1;                                                   
  else if (value < node[0].data)                                
    return -1;                                                  
}                                                               

Valgrind soulève ce message d'erreur:

Adresse 0x51f60a0 n'est pas pile d, malloc d or (récemment) libre avais

value et node variables ont des valeurs correctes. Toutes les variables est utilisé. Quel est le problème avec la gestion de la mémoire? S'il vous plaît, dites-moi, si le fragment n'est pas évident de la situation.

Éventuellement, votre len fonction retourne une longueur plus longue que le tableau réel.
L'appelant peut fournir une valeur non valide pour node.
ou il pourrait être de retour 0.
avez-vous un compilateur erreurs/avertissements lors de la compilation de ce code?
vous avez raison, le problème est dans le stackoverflow.com/questions/3637079/...

OriginalL'auteur I159 | 2014-05-21