[C] taille de tableau en argument de fonction

Fermé
NoOdle - 3 mai 2007 à 16:06
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 - 3 mai 2007 à 16:24
Bonjour à tous,

j'ai un petit souci dans une de mes fonctions.
Elle reçoit comme argument un tableau carré à 2 dimensions ainsi que sa taille t.
Cette fonction est appelée récursivement à de nombreuses reprises et la valeur de t change donc beaucoup.

J'ai une erreur au niveau de l'entête de la fonction, car il n'aime pas la taille que je lui précise.

void remplir(int t, int matrix[t][t]){ // erreur au niveau du [t][t]
     int i,j;
     for(i=0;i<t;i++)
     for(j=0;j<t;j++){
                      printf("Donnez la valeurs de la matrice a la ligne %d  colone %d :\n",i+1,j+1);
                      scanf("%d",&matrix[i][j]);
     }
}

void main()
{
    int matrix1[N][N];
  
    
    remplir(N, matrix1);
}



Si quelqu'un pouvait m'aider svp :)
A voir également:

2 réponses

Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 94
3 mai 2007 à 16:20
Salut,

Déclare plutôt ton tableau en **matrix et fais un double malloc/new dans ta fonction ça marchera mieux ;)
0
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 94
3 mai 2007 à 16:24
Un truc dans ce genre là :
#include<stdio.h>
#define N 10

void remplir(int t, int **matrix){ // erreur au niveau du [t][t]
     int i,j;

	matrix=new int*[t];
	for(i=1;i<=t;i++)
		matrix[i]=new int[t];

     for(i=0;i<t;i++)
     for(j=0;j<t;j++){
          printf("Donnez la valeurs de la matrice a la ligne %d  colone %d :\n",i+1,j+1);
          scanf("%d",&matrix[i][j]);
     }
}

void main()
{

    int **matrix1;
    remplir(N, matrix1);
}
0