[VC++6] erreur creation d une methode avec un tableau en parametre

Résolu
jerome86600 Messages postés 36 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 13 juillet 2006 - 3 juil. 2006 à 15:52
jerome86600 Messages postés 36 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 13 juillet 2006 - 5 juil. 2006 à 11:54
pouvez vous jeter un oeil a ces erreur please, merci




void modIdMap(int dev, int modId[]){



 //recupere plusieur id et les empile ds le tableau





ret = PCube_getModuleIdMap( dev , &modId[0] );


 


    if( ret == 0 ){



        printf( "No module connected\n" );// Error Handling ...



        getchar();



        return;



    }







    for (int i=0;i<ret;i++){



        printf( "\nmodId1-%d : %d ", i , modId[i] );



    }



    return;



}





erreur :




C:\Documents and Settings\sme5jn\My
Documents\new\main.cpp(196) : error C2556: 'void __cdecl
modIdMap(int,int [])' : overloaded function differs only by return type
from 'int __cdecl modIdMap(int,int [])'



       
C:\Documents and Settings\sme5jn\My Documents\new\main.cpp(34) : see
declaration of 'modIdMap'



C:\Documents and Settings\sme5jn\My Documents\new\main.cpp(196) : error C2371: 'modIdMap' : redefinition; different basic types



       
C:\Documents and Settings\sme5jn\My Documents\new\main.cpp(34) : see
declaration of 'modIdMap'

28 réponses

cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
5 juil. 2006 à 11:34
Faut que tu alloues de la place pour ton tableau
int modId1[]; -> c'est juste un pointeur
Si tu connais la taille du tableau tu fait un int modId1[TAILLE];
Si c'est un tableau dynamique tu utilises un malloc

++
3
jerome86600 Messages postés 36 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 13 juillet 2006
5 juil. 2006 à 11:54
ca marche g donc remplacé int modId1[6];

par int* modId1=(int*)malloc(10*sizeof *modId1);
et c bon plus de pb

merci bcq  laurent1024  et merci  a toi ossi  luthor pour vos aides precieuses

++
3
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
3 juil. 2006 à 16:04
Si tu as un fichier .h avec le prototype de la fonction, verifies que ce prototype est le meme quand dans ta déclaration de fonction

++
0
jerome86600 Messages postés 36 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 13 juillet 2006
3 juil. 2006 à 16:17
non g pas de .h c tout ds le meme fichier, en faite c un probleme avec
le tableau, ca merche si je mais juste un int tou seul mais g besoin de
retourner un tableau et la ca merche plus
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
3 juil. 2006 à 16:23
Comment fait tu ton appel a cette fonction  (parametres) ?

++
0
jerome86600 Messages postés 36 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 13 juillet 2006
3 juil. 2006 à 16:31
ben l appel importe peu vu que ca compile pas mais normalement ca doit etre ca:


modIdMap( dev,  modId[] );

    dev est un parametre qui existe deja et modId[] est le tableau ou je dois stocker


ps:je te remerci tout de meme de ton attention et escuse moi si je comprend mal ce que tu me demande


++
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
3 juil. 2006 à 16:37
Je suppose que         C:\Documents and Settings\sme5jn\My Documents\new\main.cpp(34) : see declaration of 'modIdMap'   c'est cette ligne la :
void modIdMap(int dev, int modId[]){

Et pour t'aider il faudrais savoir à quoi correspond la ligne
C:\Documents and Settings\sme5jn\My
Documents\new\main.cpp(196) : error C2556: 'void __cdecl
modIdMap(int,int [])' : overloaded function differs only by return type
from 'int __cdecl modIdMap(int,int [])'
0
jerome86600 Messages postés 36 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 13 juillet 2006
3 juil. 2006 à 16:41
ca correspond a la meme ligne   void modIdMap(int dev, int modId[]){
0
jerome86600 Messages postés 36 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 13 juillet 2006
3 juil. 2006 à 16:54
pour info si j enleve les [] ca marche tres bien mais ca me retourne que lq premiere valeur de la liste   que  ret = PCube_getModuleIdMap( dev , &modId[0] ); stock normalement ds
modId
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
3 juil. 2006 à 17:00
Essaye ret = PCube_getModuleIdMap( dev , modId );
0
jerome86600 Messages postés 36 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 13 juillet 2006
3 juil. 2006 à 17:14
il ne reconnai plus le tableau


C:\Documents and Settings\sme5jn\My Documents\new\main.cpp(199) : error C2109: subscript requires array or pointer type

C:\Documents and Settings\sme5jn\My Documents\new\main.cpp(199) : error C2102: '&' requires l-value

C:\Documents and Settings\sme5jn\My Documents\new\main.cpp(208) : error C2109: subscript requires array or pointer type





si tu vois un autre moyen de recuperer les valeur n hesite pas


Un truc que je trouve bizar :

int val1;

int val2;

int val 3;





PCube_getModuleIdMap( dev , &val1);


me stock l adresse de chacun des objet sur dev respectivement ds val1, val2 et val3
0
jerome86600 Messages postés 36 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 13 juillet 2006
3 juil. 2006 à 17:15
je voudrait en faite faire la meme chose avec un nombre indefini d objet
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
3 juil. 2006 à 17:22
void modIdMap(int dev, int modId[]){


ret = PCube_getModuleIdMap( dev , modId );
0
jerome86600 Messages postés 36 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 13 juillet 2006
3 juil. 2006 à 17:32
C:\Documents and Settings\sme5jn\My
Documents\new\main.cpp(198) : error C2664: 'PCube_getModuleIdMap' :
cannot convert parameter 2 from 'int * []' to 'int *'
0
jerome86600 Messages postés 36 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 13 juillet 2006
3 juil. 2006 à 17:35
void modIdMap(int dev, int modId[]){

    ret = PCube_getModuleIdMap( dev , &modId[0] );


main.obj : error LNK2001: unresolved external symbol "int * modId1" (?modId1@@3PAHA)

Debug/new.exe : fatal error LNK1120: 1 unresolved externals
0
jerome86600 Messages postés 36 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 13 juillet 2006
3 juil. 2006 à 17:36
avec ca comme appel modIdMap(dev, modId1);

car modIdMap(dev, modId1[]); ->    C:\Documents and Settings\sme5jn\My Documents\new\main.cpp(77) : error C2059: syntax error : ']'
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
3 juil. 2006 à 18:31
Perso, je capte rien a ton code. Et comme je pense que c'est a toi de
détailler ton pb pour le rendre compréhensible, je perds pas mon temps
a essayer de comprendre. (c'est ptet moi, auquel cas c'est pas
suffisamment clair pour moi).
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
3 juil. 2006 à 18:42
Bon mais ce que je pige pas, le compilo donne une erreur des plus explicites:
C:\Documents and Settings\sme5jn\My
Documents\new\main.cpp(196) : error C2556: 'void __cdecl
modIdMap(int,int [])' : overloaded function differs only by return type
from 'int __cdecl modIdMap(int,int [])'


donc ta quelque part: int modIdMap(int, int *) au lieu de void modIdMap(int, int *)
0
jerome86600 Messages postés 36 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 13 juillet 2006
3 juil. 2006 à 22:44
oui g resolue ce pb mais des que je change quelque chose ca me donne un autre erreur
le dernier en date que je comprend pas c'est
main.obj : error LNK2001: unresolved external symbol "int * modId1" (?modId1@@3PAHA)
Debug/new.exe : fatal error LNK1120: 1 unresolved externals

merci quand meme de ton aide
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
3 juil. 2006 à 23:13
Post plus de code, ou détail précisément comment tu déclares tes
fonctions. Et surtout, ou obtiens tu ce message d'erreur ! car ya plein
de situations possibles...
0
Rejoignez-nous