Tableau/pointeur passer en parametre
chahbane
-
chah -
chah -
Bonjour,
SVP je viens de programmer une petite application en langage C. je voulais utiliser une fonction pour saisir au clavier un tableau T dynamique a une dimension de taille n dont l'en tete est :
void remplir (int* T, int n)
j'ai rencontre pls erreurs. svp me completer la fonction et ce qu'il faut avoir dans le proramme principal (malloc...) et l'appel.
mer6666666666666666666666
SVP je viens de programmer une petite application en langage C. je voulais utiliser une fonction pour saisir au clavier un tableau T dynamique a une dimension de taille n dont l'en tete est :
void remplir (int* T, int n)
j'ai rencontre pls erreurs. svp me completer la fonction et ce qu'il faut avoir dans le proramme principal (malloc...) et l'appel.
mer6666666666666666666666
A voir également:
- Tableau/pointeur passer en parametre
- Tableau word - Guide
- Tableau ascii - Guide
- Parametre dns - Guide
- Trier un tableau excel - Guide
- Remettre parametre usine pc - Guide
2 réponses
Quel mélange... un coup c'est 'int*, un coup c'est 'int[]'. Pourquoi pas mais apparemment tu ne suis pas.
A corriger (au moins):
- scanf("%d",t[i]); en &t[i] ou t+i,
- remplir(&A,n); en A.
Mais le compilateur doit le signaler !
Bonne continuation.
A corriger (au moins):
- scanf("%d",t[i]); en &t[i] ou t+i,
- remplir(&A,n); en A.
Mais le compilateur doit le signaler !
Bonne continuation.
P.e pourrai tu nous donner le code que tu avais écris pour qu'on corrige les erreurs.
#include <stdio.h>
#include <conio.h>
void remplir (int* t, int n)
{
int i;
for (i=0; i<n; i++)
{
printf(" Donner t[%i] : ",i);
scanf("%d",t[i]);
}
}
void saisie (int* n)
{
printf("Donner la taille du tableau : ");
scanf("%d",n);
}
void affichage (int t[], int n)
{
int i;
for (i=0; i<n; i++)
printf(" %d ",t[i]);
}
int* A;
main()
{
int n;
saisie(&n);
A=malloc(n*sizeof(int));
remplir(&A,n);
affichage(A,n);
getch();
}
#include <conio.h>
void remplir (int* t, int n)
{
int i;
for (i=0; i<n; i++)
{
printf(" Donner t[%i] : ",i);
scanf("%d",t[i]);
}
}
void saisie (int* n)
{
printf("Donner la taille du tableau : ");
scanf("%d",n);
}
void affichage (int t[], int n)
{
int i;
for (i=0; i<n; i++)
printf(" %d ",t[i]);
}
int* A;
main()
{
int n;
saisie(&n);
A=malloc(n*sizeof(int));
remplir(&A,n);
affichage(A,n);
getch();
}
ms a propos int[] et int*, je voudrais utiliser les deux (passage par valeur et variable) dans le mémé programme car je suis débutant en langage C et je veux savoir la différence.
Pouvez-vous m'expliquer la difference svp et quel methode est plus rapide et conseillée.
En 'C' il n'y a que la transmission par valeur qui existe. Dire que la transmission par adresse existe est une erreur, il s'agit en fait d'une transmission de la valeur... d'une adresse.
La différence entre un pointeur (int*) et un tableau (int[]) est (essentiellement) la suivante:
'int*' est un pointeur variable (au sens ou on peut modifier l'adresse vers laquelle il pointe),
'int[]' est un pointeur constant (il ne peut que pointer vers le tableau déclaré à l'initialisation).
Bonne réflexion.