lektrosonic
Messages postés145Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention21 février 2013
-
1 mars 2007 à 21:13
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 2008
-
2 mars 2007 à 21:37
Bonjour, je code un logiciel sous Dev-Cpp en C et depuis hier mon application se bloque a un moment donne. Je n arrivai pas a trouver le bug. (La compilation fonctionne, aucune erreur ni warning). Du coup j'ai installe Visual Studio 2005 et lorsque mon programme se lance et au moment ou il se bloque cette fenetre aparait: (desole pour le lien, mais j'ai pas reussi a introduire l image ici)
http://lektrosonic.free.fr/logo/Untitled-1.jpg Grace a cette fenetre, j'ai pu ''localiser'' le bug. J'ai alors realise que cette fenetre apparait lors de l'apel de la fonction malloc. Par exemple :
char* temp_str;
temp_str=malloc(sizeof(char)*40); <<<< a ce moment
if(temp_str==NULL)
{
....
}
Et pour rendre encore plus bizzare le probleme:
malloc est deja appelee avant dans le programme, mais pourtant elle cause l'erreur uniquement a cet endroit!
Que doi-je faire? Ne pas utiliser malloc pour allouer de la memoire ?
Voila ceci est mon probleme, je vous remercie d avance pour la lecture et l'etude de mon probleme.
cs_JCDjcd
Messages postés1138Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention25 janvier 20094 1 mars 2007 à 21:28
Il nous faudrait le reste du code : qu'est-ce-qui est dans le '...'
Sinon ca me parait bizarre que tu dises que tu trouves pas le bug
alors qu'il n'y a aucun warning et error.
Par definition un bug est une erreur de logique dans la programmation
et non une erreur d'ecriture (en fait si parfois mais rarement,
genre inversion de symboles ou autres)...
Dans le '...' tu fais un "exit(1);" ou pas ?
Pourquoi faire simple quand on peut faire compliqué ?
lektrosonic
Messages postés145Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention21 février 2013 1 mars 2007 à 22:13
1)Quand je dit ''erreur'' je veu dire la fenetre qui apparait.
2)Oui effectivement aucune erreur apparait lors de la compilation
3)Dans le ... il y a tout simplement:
MessageBox(hwnd,"Error on allocating memory","Error",MB_ICONERROR|MB_OK);
exit(0);
l3KTr0 Was HeRe
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 2 mars 2007 à 09:34
salut,
je comprends pas bien comment tu fais pour débugger, si tu obtiens cette fenêtre, c'est que tu lances l'exe en dehors de visual studio...ca serait vraiment beaucoup plus simple de créer un projet dans VC++, d'ajouter tes fichiers dedans et de faire F5 (en mode Debug)...
cela dit lorsque tu cliques sur Yes dans la fenêtre, normalement, ca doit te donner un code en hexa...à savoir le code d'erreur...
ShareVB
Vous n’avez pas trouvé la réponse que vous recherchez ?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 2 mars 2007 à 13:16
En C pas besoin de cast, c'est moins verbeux, le compilo sait qu'une adresse est un nombre 32 bits, aucune philo à la noix.
Ceci dit, le cast explicite est utile pour relire son code.
cs_JCDjcd
Messages postés1138Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention25 janvier 20094 2 mars 2007 à 17:50
Est-ce-que quelqu'un ici connait la méthode du pas-à-pas (je suis sur que ca existe !)
C'est parfois utile, pour l'avoir déjà utilisé par moi même ... c'est biensur de l'ironie :
le pas-à-pas est le SEUL moyen pour debbuger ton programme !!!
Je trouve ca scandaleux (si c'est le cas) que des personnes posent des messages
quand ils n'ont pas fais en amout le nécessaire pour savoir où est l'erreur.
Donc ta "localisation" normalement doit s'etre faite par le pas-à-pas et non pas par
la fenêtre du compilo. !
Remarque : il est vrai qu'un cast n'a jamais fait de mal à une mouche
Pourquoi faire simple quand on peut faire compliqué ?