Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1565 connectés 

  FORUM HardWare.fr
  Programmation

  assertion failure pour newbie

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

assertion failure pour newbie

n°101310
ramirez
Posté le 16-02-2002 à 20:44:31  profilanswer
 

voila, j'ai pondu le code suivant qui provoque une assertion failure (boite de dialogue qui apparait) sous visual C++ et je ne comprend pas pkoi...
HELP !!!
 
#include <iostream.h>
#include <string.h>
 
#include "fonctions.h"
//#include "record.cpp"
 
struct record {
 int number;
 char *name;
};
 
int main(void){
 record entree;
 char nom[20];
 
 cout << "nombre de l'entrée ? " << endl;
 cin >> entree.number;
 
 cout << "nom de l'entrée ? " << endl;
 cin >> nom;
 
 entree.name = new (char[strlen(nom)]);
 entree.name = nom;
 
 cout << "entree : " << entree.name << " " << entree.number << endl;
 
 delete[]entree.name;
 
 return 0;
}

mood
Publicité
Posté le 16-02-2002 à 20:44:31  profilanswer
 

n°101311
deathsharp
Posté le 16-02-2002 à 20:51:37  profilanswer
 

parce que t'essaye de delete nom et que la mem aloue a entree.name ne sera pas detruit.
 
tu remplace  

Code :
  1. entree.name = nom;

 
 
par  

Code :
  1. strcpy( entree.name, nom );

 

[jfdsdjhfuetppo]--Message édité par deathsharp--[/jfdsdjhfuetppo]


---------------
What butter and whiskey won't cure, there is no cure for.
n°101312
deathsharp
Posté le 16-02-2002 à 20:52:38  profilanswer
 

ta pas fait du vb avant par hasard? :D


---------------
What butter and whiskey won't cure, there is no cure for.
n°101314
ramirez
Posté le 16-02-2002 à 20:56:56  profilanswer
 

oki je vais essayer...
 
mais c'est marrant, le même code était passé sans pb sous unix (utilisation de gpp)...
soit j'ai eu de la chance, soit le compilateur était plus permissif...
 
ceci dit avec les pointeurs on ne sait jamais...
 
en tout cas merci...

n°101315
deathsharp
Posté le 16-02-2002 à 21:03:04  profilanswer
 

si ca passe c que le compilo c'etait de la merde :D


---------------
What butter and whiskey won't cure, there is no cure for.
n°101320
wpk
Posté le 16-02-2002 à 21:09:38  profilanswer
 

ps:
 
c'est pas bon,  
faut pas oublier le 0 terminal ds une string c
 
entree.name = strcpy(new char[strlen(nom)+1], nom));

n°101321
deathsharp
Posté le 16-02-2002 à 21:13:11  profilanswer
 

j'aime pas cette syntaxe :heink:
mais c vrai j'ai pas fait gaffe


---------------
What butter and whiskey won't cure, there is no cure for.
n°101322
ramirez
Posté le 16-02-2002 à 21:14:19  profilanswer
 

quel con !!!
j'ai effectivement dejà produit ce bug....
il faut penser à allouer la longueur du string + 1 puisque la fonction strlen ne compte pas le \n...
 
je tente et je ne vous embête plus si ca marche  :ange:  
 
PS : desole d'avoir pollué le phorum en creant de nouveaux sujets au lieu de repondre  :sleep:  
 
je le maitrise pas non plus...  
m je suis qu'un newbie hein ... !
 :bounce:  
 
merci pour tout et @+

n°101323
wpk
Posté le 16-02-2002 à 21:23:50  profilanswer
 

Re Ps: puisque apparament tu t'est mis au C++, autant laisser tomber les chaines de caracteres C et les remplacer avantageusement par les string de la STL. Plus besoin de te faire chier avec les strcpy et les 0 terminals &co.
 
Re PS 2: qd tu fais un include d'un header de la STL, utilise plutot #include <iostream> à la place de #include <iostream.h>

n°101324
ramirez
Posté le 16-02-2002 à 21:27:28  profilanswer
 

les string de STL ?
 
c'est une classe String, un peu comme la classe String de java ?
elle est ds la librerie standard installée avec visual ?
 
ok je prend note !!!! merci
 
je crois que je vais revenir de temps en temps moa ... :spookie:

mood
Publicité
Posté le 16-02-2002 à 21:27:28  profilanswer
 

n°101336
deathsharp
Posté le 16-02-2002 à 22:06:02  profilanswer
 

lib c++ standart
 
#include <string> si souvenir bon
 
moi je l'utilise pas trop


---------------
What butter and whiskey won't cure, there is no cure for.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  assertion failure pour newbie

 

Sujets relatifs
[ C ] Cherche idée de petit jeu à faire (newbie inside)[JS] Put1 je galere ! question de newbie...
Problème de GROS newbie en C++création de fichier batch (newbie !)
[C++] Debug assertion failure[newbie] site web en flash?
[Java] Newbie : applet marche dans JBuilder mais pas dans IE...newbie du php demande aude ;) !!
[Newbie] Passage par adresse d'un tableau de structure 
Plus de sujets relatifs à : assertion failure pour newbie


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR