[C] taille de tableau en argument de fonction
NoOdle
-
Stupeflip Messages postés 391 Date d'inscription Statut Membre Dernière intervention -
Stupeflip Messages postés 391 Date d'inscription Statut Membre Dernière intervention -
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.
Si quelqu'un pouvait m'aider svp :)
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:
- [C] taille de tableau en argument de fonction
- Comment réduire la taille d'un fichier - Guide
- Tableau word - Guide
- Fonction si et - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
2 réponses
Salut,
Déclare plutôt ton tableau en **matrix et fais un double malloc/new dans ta fonction ça marchera mieux ;)
Déclare plutôt ton tableau en **matrix et fais un double malloc/new dans ta fonction ça marchera mieux ;)
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); }