vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 19 déc. 2006 à 12:42
Ton "instruction" caseList; dans le constructeur ne sert à rien. Par défaut, ton vecteur est automatiquement instancié, avec le constructeur par défaut, tu n'a rien a faire.
C'est comme si tu écrivais:
Moteur::Moteur(): caseList(std::vector<Case>())
{
}
Le problème peut venir du constructeur de Case, ou bien du constructeur par copie
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 19 déc. 2006 à 15:16
Comme tu n'a que des valeurs entières, je ne pense pas que tu ais besoin de ce constructeur par recopie.
Peux-tu connaitre exactement l'endroit qui fait planter ton programme?
AshOorTael
Messages postés4Date d'inscriptionlundi 28 juillet 2003StatutMembreDernière intervention20 décembre 2006 19 déc. 2006 à 15:51
oui, je te met le debut de la fonction:
std::vector<std::string> wFileList = file->getFileList();//renvoi un vecteur contenant le chemin de plusieurs fichiers
SDL_Rect r;
std::vector caseRemplie;
int caseIdx = 0;
int interCell = 10;
int x = interCell;
int y = interCell;
int cols = getMaxCols(wFileList.size()*2); // permet d'obtenir le nombre le colonne en fonction du nombre de fichier OK.
int lines = (wFileList.size()*2)/cols; //nombre de ligne
int width = (int)((WIDTH-(cols*interCell))/cols); //taille des cases
int height = (int)((HEIGHT-(lines*interCell))/lines); // taille des cases
caseRemplie = fillBoard(wFileList.size()*2); //rempli le vecteur avec des int aleatoires distincts
std::cout << caseList.capacity()<<"\n"; //affiche 0
caseList.reserve(wFileList.size()*2);
std::cout << caseList.capacity()<<"\n"; affiche 20 car 10 fichiers *2
caseList.at(0)->setID("1"); plante ici.
J'ai enlevé le try catch.
Je souhaiterais repartir aléatoirement les noms de fichiers dans les cases du vecteur,mais j'avoue avoir du mal.
Est ce qu'avec un std::fill cela passerais mieux, je vais essayé.
Merci pour ton aide.
Ash Oor T'ael
Vous n’avez pas trouvé la réponse que vous recherchez ?