begin process at 2012 05 30 15:49:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Retourner tableau 2d


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

Retourner tableau 2d

samedi 24 juillet 2004 à 16:23:43 | Retourner tableau 2d

ZogStriP

Membre Club Administrateur CodeS-SourceS
J'ai une fonction qui retoure un tableau 2 dimension mais ça ne marche pas :

int MultiMatrice(int Matrice1[2][2], int Matrice2[2][2])
{
int MatriceResultat[2][2];
int i,j,k;
for(i = 0; i < 2; i++)
{
for(j = 0; j < 2; j++)
{
MatriceResultat[i][j] = 0;
for(k = 0; k < 2; k++)
MatriceResultat[i][j] += Matrice1[i][k] * Matrice2[k][j];
}
}
return MatriceResultat[2][2];
}

Quand je fais :
curMatrice[2][2] = MultiMatrice(tmpMatrice, Matrice);

Et bien il y a n'importe quoi dans curMatrice !


ZogStriP
IA pour : Incomplet de l'Ancéphale
http://blog.developpeur.org/zogstrip/
www.rubikscubor.fr.st

#define ThatTheQuestion ((bb) || !(bb))

samedi 24 juillet 2004 à 17:01:51 | Re : Retourner tableau 2d

glipper

Membre Club
Je pense qu'il faut que ta fonction retourne un pointeur vers le premier element de ton tableau... sinon ce n'est pas possible à mon avis !
++ Glipper
samedi 24 juillet 2004 à 17:41:36 | Re : Retourner tableau 2d

ZogStriP

Membre Club Administrateur CodeS-SourceS
Et comment on fait ça ?


ZogStriP
IA pour : Incomplet de l'Ancéphale
http://blog.developpeur.org/zogstrip/
www.rubikscubor.fr.st

#define ThatTheQuestion ((bb) || !(bb))

samedi 24 juillet 2004 à 17:49:31 | Re : Retourner tableau 2d

glipper

Membre Club
Hum... en fait je viens de m'apercevoir que renvoyer un pointeur, ca marche bien pour un tableau simple, mais je n'y arrive pas pour un tableau à deux dimenssions...
Ceci dit, je ne vois pas d'autres solutions possibles que les pointeurs.........
Je continu à chercher, et je te dis si j'y arrive :)
++ Glipper
samedi 24 juillet 2004 à 18:01:37 | Re : Retourner tableau 2d

djl

Réponse acceptée !
ZogStriP > litt un cours sur les tableaux et tu verra que ce que tu ecris n'a pas de sens, on peut pas affecter un tableau (ce n'est pas une variable)

on ne peut pas non plus retourner un tableau par valeur, seulement son adresse convertie en pointeur, et ta matrice MatriceResultat n'existe pas dans le contexte appelant donc tu dois passer la matrice resultat en paramettre à la fonction

void MultiMatrice(const int Matrice1[][2], const int Matrice2[][2], int MatriceResultat[][2])
{
int i,j,k;
for(i = 0; i < 2; i++)
{
for(j = 0; j < 2; j++)
{
MatriceResultat[i][j] = 0;
for(k = 0; k < 2; k++)
MatriceResultat[i][j] += Matrice1[i][k] * Matrice2[k][j];
}
}

}


glipper > un tableau 2d est une collection d'elements contigus, tu peut tres bien retourner un pointeur dessus (a condition qu'il existe dans le contexte appelant)


dimanche 25 juillet 2004 à 21:02:22 | Re : Retourner tableau 2d

leprov

euh....un tableau est deja un pointeur. lorsque tu ecris :
void MultiMatrice(const int Matrice1[][2], const int Matrice2[][2], int MatriceResultat[][2])

tu passe deja des références a tes tableaux. effectivement, la solution proposée par djl est la bonne
dimanche 25 juillet 2004 à 21:02:35 | Re : Retourner tableau 2d

leprov

euh....un tableau est deja un pointeur. lorsque tu ecris :
void MultiMatrice(const int Matrice1[][2], const int Matrice2[][2], int MatriceResultat[][2])

tu passe deja des références a tes tableaux. effectivement, la solution proposée par djl est la bonne. sinon utilise des vectors si tu es en c++
lundi 26 juillet 2004 à 20:14:10 | Re : Retourner tableau 2d

djl

non, un tableau n'est pas un pointeur, mais la conversion se fait implicitement
lundi 26 juillet 2004 à 21:23:59 | Re : Retourner tableau 2d

leprov

bon alors je reformule:
quand on ecrit
TYPE fonction (TYPE tableau [])
{
//code
}

on passe la référence du tableau et non pas le talbeau (et effectivement personne ne passe un taleau par reference ou par pointeur, on n'a jamais appris a personne a faire comme ca, cest pas sans raisons....). de meme, lorsque écrit
tableau [i]
le compilteur interprete comme "adresse du premier élément du tableau décalé de i * taille des objets du tableau".
lundi 26 juillet 2004 à 21:28:11 | Re : Retourner tableau 2d

leprov

aufait pr expliquer un peu l'erreur qu'a commise zogstrip, quand tu retourne "return MatriceResultat[2][2];", tu retourne l'adresse du premier élément de ton tableau, codée sur 4 octets, tu stock cette adresse dans un int puisque ton parametre de retour est un int. donc tu as retournée une adresse stockée dans un int. tu as récupéré l'adresse de ton tableau dans un entier. essaie de reprendre ton code, et de faire
cout << multimatrice (mat1[][], mat2[][]);
tu verras le résultat....

1 2

Cette discussion est classée dans : int, tableau, for, retourner, matriceresultat


Répondre à ce message

Sujets en rapport avec ce message

C ANSI allocation dynamique de tableau [ par pedu ] Ce petit pro beug en sortie, pourquoi et que faire ?#include #include int (*pi)[1][1]; /* pointeur sur un tableau d'entiers */void main(void){ unsi Problem Affichage de mon Tableau [ par Orezza ] salut à tous, j'ai un blem à l'affichage du tableau. l'utilisateur parametre son tableau, c lui qui l'initilize mais j'arrive pas à afficher apres le Création de 2 tableaux dynamik à 2D [ par flopflopp ] Bonjour, je voudrais soumettre un petit problème en C++, j'ai une simple fonction qui crée un tableau dynamique à 2 dimensions, le rempli avec des 1 e tableau [ par imanedaoudi ] Salut,Je veux récuperer le tableaux triée sans faire return, avec ce programme je recupere le tableau non trier ,comment faire pour recuperer le tab t Pb de tableau et de listbox [ par sran_isback ] Bonjour ! j'ai un ptit probléme concernant un tableau a afficher dans une listbox! j'aimerais bien qu'il m'affiche les nombres de 1 à cents mais toute Trie bulle [ par afrikanoo ] #include #include void main(){ clrscr(); int n; <font color="#d3d3d problème avec l'initialision d'un tableau [ par khen ] Bonjour,voila j'ai un petite problème avec l'initialisation de mon tableau , je vous explique le problèmeon a un tableau de 3 dimension appelé tab et Allocation dynamique tableau 2D : erreur de seg [ par noname001 ] Bonjour à tous, [^^happy13] j'aimerais faire appel à vos lumières concernant deux codes. Ils ont tous les deux pour but de créer un tableau 2D dynami passage de tableau à 3 dimensions en paramètre à une fonction [ par snake57 ] Bonjour à tous, J'ai un tableau à 3 dimensions que je veux afficher à partir d'une fonction. J'ai donc créé une fonction mais celle-ci affiche...n'im creation de plusieur tableau [ par foxwar ] Bonjour, j'aimerai cree un programme ki permet de cree plusieur tableau du different taille et les afficher g ecirt ce programme mai je c pa ce k'il


Nos sponsors


Sondage...

Comparez les prix

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,359 sec (4)

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