Le code suivant s'exécute pendant une seconde, puis une erreur d'exécution est provoquée par node-> data = * data;Erreur de pile d'appel lors de la création d'une arborescence binaire avec récursivité
Node *TreeCreate(int level, const char *data)
{
Node *node = malloc(sizeof(node));
if (node != NULL) {
node->data = *data;
}
if (level != 0) {
node->leftChild = TreeCreate(level - 1, data + 1);
node->rightChild = TreeCreate(level - 1, data + (int)pow(2, level - 1));
}
return node;
}
'data + 1' et' data + (int) pow (2, niveau-1) 'êtes-vous sûr de le faire correctement? – roottraveller
qui est utilisé pour trouver le caractère approprié dans ma chaîne, c'est dépendant de l'ordre dans lequel j'ai placé les caractères. –