Accueil > Forum > > > > Passer un tableau 2D en paramètre en C
Passer un tableau 2D en paramètre en C
vendredi 16 décembre 2005 à 13:05:17 |
Passer un tableau 2D en paramètre en C

poiuytrez3
|
Bonjour, je souhaiterai passer en paramètre un tableau 2D, mais j'ai une erreur de compilation, voici mon code: #include <stdio.h> #include <stdlib.h> void remplissage (int** tableau, int aLignes, int aColonnes) { int i; int j; for(i = 0; i < aLignes; i++) for(j = 0; j < aColonnes; j++) tableau[i][j] = 0; } int main() { const int lignes = 10; const int colonnes = 20; int tab[10][20]; // Rempli le tableau remplissage(tab, lignes, colonnes); system("PAUSE"); return 0; } Merci de votre aide!
|
|
vendredi 16 décembre 2005 à 13:40:49 |
Re : Passer un tableau 2D en paramètre en C

poiuytrez3
|
J'ai eu la réponse entre temps: Il faut transformer le tableau 2D en tableau 1D, puis de faire joujou avec les pointeurs. Voici le code corrigé: #include <stdio.h> #include <stdlib.h> void remplissage (int** tableau, int aLignes, int aColonnes) { int i; int j; for(i = 0; i < aLignes; i++) for(j = 0; j < aColonnes; j++) //tableau[i][j] = 0; *((int *)tableau+i+j) = 3; for(i = 0; i < aLignes; i++) for(j = 0; j < aColonnes; j++) printf("%d", tableau[i]); } int main() { const int lignes = 10; const int colonnes = 20; int tab[lignes][colonnes]; // Rempli le tableau remplissage(tab, lignes, colonnes); system("PAUSE"); return 0; }
|
|
vendredi 16 décembre 2005 à 13:41:25 |
Re : Passer un tableau 2D en paramètre en C

poiuytrez3
|
PS: Si quelqu'un a une meilleure solution...
|
|
vendredi 16 décembre 2005 à 13:48:56 |
Re : Passer un tableau 2D en paramètre en C

buno
|
fais un cast: remplissage((int **)tab, lignes, colonnes);
Buno ---------------------------------------- L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
|
|
vendredi 16 décembre 2005 à 15:19:40 |
Re : Passer un tableau 2D en paramètre en C

poiuytrez3
|
Salut Bruno, je viens d'essayer mais ça ne marche pas. En fait ma technique n'est pas terrible, j'ai l'impression que ça ne marche pas bien...
|
|
vendredi 16 décembre 2005 à 15:35:20 |
Re : Passer un tableau 2D en paramètre en C

buno
|
Moi, perso, je ne travaille pas avec des tableaux à plusieurs dimensions: une seule suffit avec de bons déplacements de pointeurs. Du coup, dans mes fonctions, je n'au que des "type *" en paramètres, c'est plus simple...
Buno ---------------------------------------- L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
|
|
vendredi 16 décembre 2005 à 15:40:17 |
Re : Passer un tableau 2D en paramètre en C

poiuytrez3
|
En fait je vais faire un programme de traitement d'image, et j'ai besoin d'un tableau en 2D pour stocker les valeurs de couleurs de chaque pixel. Donc j'ai absolument besoir de cette fonction.
|
|
vendredi 16 décembre 2005 à 15:47:43 |
Re : Passer un tableau 2D en paramètre en C

buno
|
Du coup, utilise des "type **". Comme ça, tu peux les allouer dynamiquement: m_Bitmap = new rgb* [Height()]; for (int i=0;i<Height();i++) m_Bitmap[i]= new rgb[Width()];Si tu veux un coup de main sur ton appli, va voir ma source qui traite des BMP Buno ---------------------------------------- L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
|
|
vendredi 16 décembre 2005 à 15:59:07 |
Re : Passer un tableau 2D en paramètre en C
|
samedi 17 décembre 2005 à 12:39:47 |
Re : Passer un tableau 2D en paramètre en C

ctx_man
|
Perso je prefer les while, les for ne sont pas asser flexibles et on tendance à apporter des problème si tu ne sais pas exactement quand on doit verifier la condition de boucle. Si tu ecrit *((int *)tableau+i+j) = 3; tu dis que tableau[i+j] = 3 ! Par conséquent tu dépasse largement ton nombre de ligne et tu fais pointer tes ignes sur l'adresse mémoire 0x00000003 !!!
void remplissage (int** tableau, int aLignes, int aColonnes) { int i; int j; i = 0; while(i < aLignes) { j = 0; while(j < aColonnes) { //Formalisme tableau tableau[i][j] = 0; //Formalisme pointeur *(*(tableau + i) + j) = 0; j++; } i++; } }
Le travail c'est la santé, ne rien faire c'est la préservé !!!
|
|
Cette discussion est classée dans : int, tableau, passer, paramètre, 2d
Répondre à ce message
Sujets en rapport avec ce message
Tableau à 2 dimensions en paramètre [ par BsEtZeOpLhD ]
Bonjours, Voila mon problème : je n'arrive pas à passer une tableau a 2 dimensions en paramètre. Est ce que quelqu'un sais comment faire ? Merci voi
Tableaux en paramètre de fonction [ par jazz2 ]
Si les pointeurs sont l'unique façon de passer un tableau en paramètre de fonction, alors comment passer un tableau comme paramètre de fonction, de so
Passer un tableau de char en paramètre [ par DeadStar117 ]
Bonjour,Je cherche à passer des tableaux de char en paramètre à mes procédure mais je n'y arrive pas.Voila un exemple de code:GestionArbre GeAr;<font
optimisation ??? [ par mana ]
bonjour , je programme avec code bocks sous GNU GCC voici mon premier code : // 1. copie l'imge dans un tableau // 2. modifie l'image saugardée da
vecteur 2D [ par williamcplusplus ]
Bonjour à tous!Je désire accéder à chaque ligne d'un vecteur 2D de bit de la forme:vector > Tableaucode;Tableaucode.resize(9,vector(8,false));Quand je
problème de allocation de tableau [ par boualiasma ]
Bonsoir, Je voulais copier le contenu de fichier "exemple.txt" dans un tableau dynamique t de taille inconnue en avance. J'utilise le tableau pour fa
c++ : problème de tableau dynamique dans une classe [ par rollingsteen ]
Hello, je dois développer une application permettant de travailler sur de très gros nombres (200 digits) -> les digits sont stockés dans un tableau.
passer un tableau 2D en paramètre et retourner une somme [ par lionpri ]
Bonjour,Je suis débutant en C et j'ai du mal à comprendre les déclarations de fonction. J'aimerais passer un tableau 2D en paramètre d'une fonction et
Exercice sur Pointeurs, classes, héritage... [ par snoozriton ]
Bonjour à tous, étant en train d'étudier le C++, j'ai quelques soucis avec un exercice. C'est un classique dont je vous donne l'énoncé : [b]1. Défini
probleme d'initialisation d'un tableau sous code blocks [ par juju116 ]
bonjour j'ai voulu juste tester un code bidon pour voir si mon initialisation de tableau fonctionné et j'ai obtenu des résults incoherents je n'ai que
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|