C++ violation d'Accès?

Pourquoi suis-je une violation d'accès de lecture de l'emplacement 0xC0000005 ici si le même code fonctionne comme un charme quand je le codage en linux?

if(nodo->izq!=NULL) //nodo is a class or struct and "sig" is a pointer of the same kind
    VaciarAux(nodo->izq);

Est-il possible de le remettre sans exception non gérée?
affirmer fera l'affaire?

ici est la fonction

void Arbol<T>::VaciarAux(Nodo<T> * &nodo)
{
    if(nodo->izq!=NULL)
        VaciarAux(nodo->izq);
    if(nodo->der!=NULL)
        VaciarAux(nodo->der);
    if(nodo->izq == NULL && nodo->der ==NULL)
    {
        actual = nodo;
        nodo=NULL;
        delete actual;
        contador--;
    }
  • assert est un test de cohérence pour votre programme. Toutes les vérifications effectuées à l'aide de assert sont censés être même pas présent dans le code de production. Vous êtes probablement en train de lire unintialized mémoire quelque part, donc votre NULL vérifier passe, mais ensuite vous arrivez dans la mémoire vive domaines. Toutefois, vous devriez publier plus de code pour les aider à évaluer votre problème.
  • Il n'y a pas assez d'informations dans votre question nécessaire pour une réponse adéquate. La violation d'accès peut être pour une raison quelconque.
  • Qu'entendez-vous par "faire valoir fera l'affaire"? Toujours être très précis quand vous poser des questions.
  • J'ai défini comme NULL 0 à l'en-tête. Cette fonction est récursive, ce qu'il fait est pour le nettoyage d'un arbre
InformationsquelleAutor HoNgOuRu | 2011-09-29