Bonjour, je travaille avec une bibliothèque implémentant la structure de R-arbre mais il me semble qu'il y a un problème. Dans un R-arbre, chaque noeud qui n'est pas une feuille contient plusieurs entrées de la forme (Rectangle R, Pointeur vers un noeud enfant P) et telles que le noeud enfant ne contient que des rectangles recouvert par le rectangle R. Pour les feuilles, le pointeur vers un noeud enfant est remplacé par un tuple identifier (un entier qui identfie un certain objets dans une liste par exemple) mais l'implémentation de la bibliothèque ne prend pas compte de cette différence. Ainsi, pour les feuilles, le tuple identifier est stocké dans un pointeur Node* et je récupère des warning du type :
Ici, tid est un entier passé à une fonction d'insertion dans le R-arbre. Quand on arrive au niveau des feuilles, la fonction d'insertion met le rectangle à insérer dans b.rect et tid dans b.child. Ici, b est de la forme (Rectangle, child pointer) donc bien adaptée aux entrées des noeuds avec enfant mais pas aux feuilles.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Index.c:113:29: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 113 | b.child = (struct Node *) tid;
Je ne sais pas si je suis très clair. Comment puis-je régler ce problème proprement ? Est-ce que c'est vraiment un problème en fait ? Merci d'avance pour vos réponses.
Partager