begin process at 2012 05 29 04:58:26
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Fonction à paramètres illimités


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Fonction à paramètres illimités

mardi 9 mai 2006 à 17:53:49 | Fonction à paramètres illimités

Kazuya

Bonjour,

voila, j'ai fait une fonction qui utilise les fameux paramètres illimités:

mafonction(int nargs,...)

et j'envoie des structures en paramètres

struct MA_STRUCT
{
     blabla....
}

MA_STRUCT a,b,c;

mafonction(3,a,b,c);

puis ensuite je récup les paramètres comme ceci:

MA_STRUCT* args = (MA_STRUCT*)(&nargs + sizeof(nargs));

ça marche tres bien avec visual studio, pas de souci, mais avec devcpp pas moyen, mon args pointe nimporte où mais pas au bon endroit en tout cas, alors comment les arguments sont ils envoyés avec le compilo de devcpp, ils ne sont pas les uns apres les autres dans la mémoire ? comment connaitre leur adresse ?
merci.

K@zuya
mardi 9 mai 2006 à 18:16:32 | Re : Fonction à paramètres illimités

AlexN

MA_STRUCT* args = (MA_STRUCT*)(&nargs + sizeof(nargs));

Tu suppose que ton compilateur range les arguments dans la pile d'execution toujours dans le même ordre. Or tout les compilateurs ne font pas pareils.

il faut utiliser les fonctions va_start(), va_arg() et va_end()


Cette discussion est classée dans : fonction, paramètres, struct, illimités, nargs


Répondre à ce message

Sujets en rapport avec ce message

Passer un tableau en parametre d'une fonction [ par julien20vt ] Voila mon probleme:J'ai déclaré une structure Nom_Struct, j'initialise un tableau de Nom_Struct :Nom_Struct maStruct[1000] Ensuite j'ai la fonction s Listes chainées !!!!! [ par flopflopp ] Bonjour je travaille tjrs sur mon éditeur de texte style vi et je voudrais vous soumettre un nouveau problème :En fait j'ai une structure ligne qui es Une fonction qui renvoie un tableau [ par RLBDC ] Bonjour ,Je suis encore noob  en C, et je ne trouve pas comment on fait pour qu'une fonction retourne un tableau .En gros, je souhaiterais pouvoir fai char * -> paramètres de fonction [ par Suisse00 ] Voilà j'essai depuis 2 jours de faire en sorte de transformer un char * en "paramètres" de fonction afin de pouvoir appeler des fonction dont je ne co Struct array en argument [ par Gabi ] J'ai un problème avec les arrays de struct en argument (o rly ?). Quand j'en passe un, la valeur que cela donne dans la fonction n'est pas correcte (m Les paramètres de la fonction FindWindow [ par zaagane ] Salut,<span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: FR; mso-fareast-lan thread [ par elbok ] salut pour tousj'ai besoin de créer un thread qui exécutera un fonction de prototype: void traitement (struct liste *l).je suis vraiment débutanant et Exécuter une fonction transmise en paramètres [ par ndubien ] Bonjour, Comment exécuter une fonction transmise en paramètre à une autre, exemple: void LancerFonction(LPTHREAD_START_ROUTINE fx){ // Lançons fx avec Decompression JPEG [ par aziatedu13 ] bonjour,Je cherche a faire une fonction de décompression en Jpeg to BMP.J'ai pris quelque exemple masi un problème me bloque.voici tout d'abord ma fon tableau de struct et fonction en C [ par sim51 ] Bonjour à tous. J'ai un petit problème de syntax, après plusieurs recherche sur le net, je n'ai pu ni affirmer ou ni infirmer la validation de mon cod


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales