erreur - C++ - Programmation
Marsh Posté le 15-03-2005 à 10:43:35
L'erreur est pourtant claire...strcpy veut un char *, et tu lui donnes un u_char *, ça lui plait pas.
http://www.hmug.org/man/3/strcpy.html
D'autre part, je suis pas sûr que ne rien allouer à packet soit très judicieux...
[edit]
...et en C++ il y a un type std::string qui est bien pratique...
Marsh Posté le 15-03-2005 à 10:50:11
Je sais bien que string est pratique mais dans la fonction qui est appeler, il n'est acepter que des u_char!!!!
c'est pour cela, que j'aimerais mettre ma trame ethernet dans se u_char!!!
j'ai essayer plusieur methode, mais cela ne marche pas!
Marsh Posté le 17-03-2005 à 06:33:02
Bon, pour faire simple, packet est un pointeur sur une zone non allouée !
Soit tu l'alloues dans la pile avec un classique
u_char packet[256]; (enfin la taille max que tu veux)
Soit tu t'alloues dynamiquement ton buffer de la taille que tu veux:
u_char* packet;
packet = (u_char*)malloc( 256 );
...
free( packet );
voila, c'est quand meme la base
Bon courage et bonne chance pour la suite
Marsh Posté le 17-03-2005 à 11:25:20
transistor49 a écrit : Je sais bien que string est pratique mais dans la fonction qui est appeler, il n'est acepter que des u_char!!!! |
et string::c_str() c'est pour les kangourous ouzbéques ?
Marsh Posté le 17-03-2005 à 14:54:24
Joel F a écrit : et string::c_str() c'est pour les kangourous ouzbéques ? |
(faudra que je la retienne celle la !!!)
Marsh Posté le 17-03-2005 à 15:06:18
willynt a écrit : Bon, pour faire simple, packet est un pointeur sur une zone non allouée ! |
Tiens toi aussi tu castes les malloc ?
Marsh Posté le 17-03-2005 à 15:24:33
ReplyMarsh Posté le 17-03-2005 à 18:21:47
Bah caster les mallocs ... ca supprime des erreurs de warning (sans aller trifouiller dans les options de VS ... si c'est sur VS).
Et de toute facon, on est en C++ ... vous connaissez malloc en C++ vous ?
Marsh Posté le 17-03-2005 à 21:44:06
Worldofdada a écrit : Bah caster les mallocs ... ca supprime des erreurs de warning (sans aller trifouiller dans les options de VS ... si c'est sur VS). |
oauis c'est quand même plus simple de faire n'impotequoi
que de lire la doc de Visual (que vous avez acheté bien sur )
Marsh Posté le 17-03-2005 à 21:51:03
Worldofdada a écrit : Bah caster les mallocs ... ca supprime des erreurs de warning (sans aller trifouiller dans les options de VS ... si c'est sur VS). |
Concept intéressant
Marsh Posté le 15-03-2005 à 10:40:10
Bonjour, cela fait bientot, une semaine que je me galère sur cette erreur, auour de moi, personne ne peut m'aider . Je pense que mon erreur se trouve dans le main.
ceci est mon main contenu dans le testeur:
Code:
//Construction de la classe à tester
u_char * packet;
strcpy (packet,"af0ae5\0" );
cout << "Construction de l'instance de classe (objet) TrameEthernet" << endl;
TrameEthernet *trameethernet = new TrameEthernet(packet);
l'erreur se trouve a :
Code:
strcpy (packet,"af0ae5\0" );
l'erreur etant:
invalid converion from `u_char*' to `char*'
merci de bien vouloir m'aider