CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C/C++] Passages de parametres

kufa
kufa
Niveau 9
07 février 2005 à 18:51:02

Dans la categorie les grands moments nutella du C/C++, un petit probleme bien sympathique:

int sprintf( char *dest, const char *format, . ..);

int mysprintf( char *dest, const char *format, . ..);

mysprintf est la fonction a coder, et qui *doit* utiliser sprintf. vsprintf est bien entendu indisponible. Comment faire ca " proprement" ?
:-p

Altonfrere
Altonfrere
Niveau 10
07 février 2005 à 18:55:06

c´est une vraie question ou c´est pour faire réfléchir ? ; )

kufa
kufa
Niveau 9
07 février 2005 à 19:10:28

Les deux :) J ai deux solutions, mais elle sont pas propres :P

dnob700
dnob700
Niveau 10
07 février 2005 à 19:47:07

que font les fonction vspintf et sprintf ?

qu´est ce que tu doit coder ?

je veux dire, je ne vois pas de différence entre les arguments.

ou alors ta fonction recoit les mêmes que vsprintf ( oui, je viens de faire un tour sur la MSDN) et doit appeler ensuite sprintf ?

kufa
kufa
Niveau 9
07 février 2005 à 19:57:28

que font les fonction vspintf et sprintf ?
qu´est ce que tu doit coder ?

Ce n est pas ce qui importe dans ma question, du tout.

Le probleme est le suivant:

void a( int a, . ..);
void b( int a, . ..);

Je veux appeler a depuis b, en passant tous les arguments qui sont passes a b.

Altonfrere
Altonfrere
Niveau 10
07 février 2005 à 20:06:56

as tu essayé de regarder le code du vsprintf ? ; ) ok c´est de la triche . ..

dnob700
dnob700
Niveau 10
07 février 2005 à 21:05:00

ah oui j´avais pas vraiment fait gaffe.

bon, vu que je ne sais même pas récupéré les arguments qui sont passé à la fonction, je n´en ai pas la moindre idée, mais je suis quand me^me le topic ça m´apprendra surement des trucs interessant quand tu donnera ce que tu as trouvé comme méthode ( ou qqn d´autre).

dnob700
dnob700
Niveau 10
07 février 2005 à 21:05:01

ah oui j´avais pas vraiment fait gaffe.

bon, vu que je ne sais même pas récupéré les arguments qui sont passé à la fonction, je n´en ai pas la moindre idée, mais je suis quand me^me le topic ça m´apprendra surement des trucs interessant quand tu donnera ce que tu as trouvé comme méthode ( ou qqn d´autre).

kufa
kufa
Niveau 9
09 février 2005 à 22:14:41

Ben le truc, c´est qu on peut pas passer directement un va_list a la seconde fonction. Ma solution, pas supere propre, reviens a passer exactement les meme parametres a l autre en recodant en assembleur. Par contre c est compilo et platforme dependant, car faut savoir combiens d args sont passes par registres, et faire de pas utiliser la pile localement, ou d en faire une copie ( beaark).

sinon technique pas super propre, qui marche pas partout, c est de passer pleins de va_arg(args,void*), mais ca 1) j ai pas teste 2) peut aboutir a des lectures de memoires non valides, donc ca marche pas partout...

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment