Nao13090
Messages postés5Date d'inscriptionvendredi 20 mai 2011StatutMembreDernière intervention26 mai 2011
-
20 mai 2011 à 14:38
Nao13090
Messages postés5Date d'inscriptionvendredi 20 mai 2011StatutMembreDernière intervention26 mai 2011
-
25 mai 2011 à 14:36
Bonjour à tous !
Dans le cadre de mon projet de gestion de tournoi, j'ai créer via Qt une fenêtre visant à éditer les participants ajoutés au préalable (c'est à dire modifier nom, prénom, pseudo, team..)
Pour le nom tout fonctionne bien mais lorsque je veux éditer le prénom ou pseudo, une erreur
"Linstruction à 0x77c17b19 emploie la mémoire 0x00000000, la mémoire ne peut pas être "written"
Je ne sais pas d'où celà provient, voici le code s'il peut vous être utile :
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 21 mai 2011 à 11:24
char * argnom;
Tu es en C++, pourquoi ça ???? Utilises un std::string ou un QString...
En plus, on initialise toujours ses variables (au minimum tu devais avoir: char* argnom = 0;)
argnom = e->getNom();
Si getNom() retourne un char*, c'est dangereux... Parce qu'un char* n'est pas copié, seul le pointeur l'est. Donc tu as deux pointeurs qui partagent le même espace mémoire. Si l'un des deux détruits cet espace, l'autre se retrouve avec des données corrompues.
Aucune chance que ça fonctionne. argnom n'as pas de mémoire alloué (via malloc). Donc tu copies sur un espace mémoire aléatoire, d'où ton erreur potentiel.
________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfoliohttp://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question