[C/C++] appel de methode.

Le côté programmation du développement d'un jeu vidéo.

appel de methode.

Messagepar shakhal » 01 Aoû 2008, 21:09

Bonjour à tous, j'ai actuellement un soucis de plantage (pointeur invalide) lors d'un appel de methode:

Code: Tout sélectionner
void GameEngine::initialize(Ogre::SceneManager* scene)
{
    factory = new Factory(scene);
//plante ici
}

Factory::Factory(Ogre::SceneManager* scene)
{
    pScene = scene;
    pUnitManager = new UnitManager();
    for(int i = 0 ; i < 150 ; i++)
    {
        idFreeFirefly[i] = true;
    }
//arrive ici sans planter
}


Donc le constructeur de factory est appelé et terminé avec succès, mais un fois de retour dans initialize, plantage alors qu'il n'y a rien après.
une idée?

[edit] j'ai trouvé, avoir factory en membre semble ne pas marcher pour une raison qui m'échappe, mais Factory* factory = new Factory(scene) fonctionne sans soucis.
shakhal
Hello World, I'm new !
 
Messages: 16
Inscription: 20 Aoû 2007, 21:42

Messagepar Ced666 » 04 Aoû 2008, 09:01

Tu as bien vérifié que ton instance de GameEngine est valide (une adresse valide) ?
Ced666
Hello World, I'm new !
 
Messages: 315
Inscription: 10 Avr 2005, 09:43

Messagepar shakhal » 04 Aoû 2008, 21:46

Oui c'était bien ça, avant-hier, en modifiant la classe instanciant les moteurs je me suis rendu compte que j'avais bêtement oublié le new sur le pointeur de ce moteur.

Je suis tellement habitué au null pointer exception en java que ça m'était pas venu à l'esprit que le compilo c++ ne le détecte pas.

Y a des jours comme ça...
shakhal
Hello World, I'm new !
 
Messages: 16
Inscription: 20 Aoû 2007, 21:42


Retourner vers Programmation

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 22 invités