J'ai une structure comme celle-ci :
struct group
{
int index;
string name;
group* child;
};
Et j'ai mis en place un vecteur pour stocker quelques structs de groupe.
J'essaie maintenant d'avoir une fonction pour récupérer un membre du groupe à partir de ce vecteur par index, quelque chose comme ceci :
148 newGroup.child = getGroupByIndex(world, i);
Et la définition de la fonction est :
group& getGroupByIndex(vector<group>* world, int i)
{
for(vector<group>::iterator it = world->begin();
it < world->end(); ++it)
{
if(it->index == i) return *it;
}
267 return 0;
}
Malheureusement, il ne compile même pas.
Et le message d'erreur est :
tree.cpp: In function ‘int main()’:
tree.cpp:148: error: cannot convert ‘group’ to ‘group*’ in assignment
tree.cpp: In function ‘group& getGroupByIndex(std::vector<group, std::allocator<group> >*, int)’:
tree.cpp:267: error: invalid initialization of non-const reference of type ‘group&’ from a temporary of type ‘int’
Mes deux problèmes,
-
comment corriger l'erreur de compilation ? quel type de retour dois-je utiliser ?
-
Si je veux renvoyer un pointeur nul à la ligne 267, que dois-je utiliser ? J'ai essayé (void *)0 et 0, mais aucun des deux ne fonctionne.