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

 


Dernière réponse
Sujet : assertion failure pour newbie
deathsharp lib c++ standart
 
#include <string> si souvenir bon
 
moi je l'utilise pas trop

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
deathsharp lib c++ standart
 
#include <string> si souvenir bon
 
moi je l'utilise pas trop
ramirez 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:
wpk 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>
ramirez 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 @+
deathsharp j'aime pas cette syntaxe :heink:
mais c vrai j'ai pas fait gaffe
wpk ps:
 
c'est pas bon,  
faut pas oublier le 0 terminal ds une string c
 
entree.name = strcpy(new char[strlen(nom)+1], nom));
deathsharp si ca passe c que le compilo c'etait de la merde :D
ramirez 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...
deathsharp ta pas fait du vb avant par hasard? :D
deathsharp 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]

ramirez 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;
}

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)