Passer un tableau 2D en paramètre en C

poiuytrez3 Messages postés 150 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 17 mars 2009 - 16 déc. 2005 à 13:05
poiuytrez3 Messages postés 150 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 17 mars 2009 - 17 déc. 2005 à 20:19
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!
A voir également:

10 réponses

ctx_man Messages postés 285 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 20 janvier 2013 3
17 déc. 2005 à 12:39
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é !!!
1
Rejoignez-nous