Pourquoi deux fonctions aux corps fonctionnellement identiques
remplir1, remplir2 ?
m et
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
void remplir (int *A,int n);
int main(int argc,char* argv[])
{
int n,m ;
int *A, *B;
puts("Taille tableau A: ");
scanf("%d", &n);
puts("Taille tableau B: ");
scanf("%d", &m);
A = calloc(n, sizeof(int));
if ( !A )
{
perror(strerror(errno));
return EXIT_FAILURE;
}
B = calloc(n, sizeof(int));
if ( !B )
{
perror(strerror(errno));
return EXIT_FAILURE;
}
remplir (A, n);
remplir (B, m);
return EXIT_SUCCESS;
}
//corps de la fonction remplir
void remplir (int *A,int n)
{
int i;
for(i=0 ;i<n; i++)
{
printf("Elément[%d]: ", i);
scanf("%d", A + i);
}
}
La déclaration
int A[n+m],B[m]; n'a pas de sens en C. Il faut définir un array statique ou faire de l'allocation dynamique.