Bien que nous déclarions une fonction avec un tableau d'entiers, nous passons l'adresse du tableau à la fonction. Dans le cas d'entiers simples, il donne une erreur si nous passons l'adresse, nous obtenons une erreur de conversion de pointeur. Mais comment il est possible dans le cas d'un tableauPasser un tableau à une fonction dans C
#include<stdio.h>
void print_array(int array[][100],int x, int y);
main()
{
int i,j,arr[100][100];
printf("Enter the array");
for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
{
scanf("%d",&arr[i][j]);
}
}
print_array(arr,i,j);
}
void print_array(int array[][100],int x,int y)
{
int i,j;
printf("\nThe values are\n");
for(i=0;i<x;i++)
{
for(j=0;j<y;j++)
{
printf("%d",array[i][j]);
}
}
}
Ma question est même si notre fonction est déclarée comme l'un avec tableau entier comme premier paramètre (ici) nous passons l'adresse de tableau quand nous appelons la fonction. Comment ça fonctionne?
Quel genre d'erreur obtenez-vous? Voici un exemple de code sans erreur: https://www.ideone.com/CAEoi. En fait, je peux exécuter le code que vous avez écrit et il donne aussi ce que j'attends https://www.ideone.com/3z1JO –
de votre extrait de code, vous finirez par passer en x et y comme 2 puisque vous utilisez ceux dans votre boucle for où vous lisez des valeurs. Vous aussi vous initialisez seulement un [0] [0], un [0] [1], un [1] [0], un [1] [1] avec des données, le reste du tableau va juste être indésirable (à la hausse, vous imprimez seulement ce que vous avez initialisé). – pstrjds
@pstrjds Ma question ne concerne pas l'erreur. C'est à propos de la logique derrière son fonctionnement. Question maintenant mise à jour. J'espère que c'est plus clair maintenant – user567879