[C] Fonction prenant en paramétre un tableau
Résolu
pascal$$
Messages postés
39
Date d'inscription
Statut
Membre
Dernière intervention
-
pascal$$ Messages postés 39 Date d'inscription Statut Membre Dernière intervention -
pascal$$ Messages postés 39 Date d'inscription Statut Membre Dernière intervention -
Bonjour,débutant en C, je voudrais creer une fonction mafonction prenant en paramétre un tableau de floats et qui en réalise l affichage, partant du principe que sizeof(t)/4 représente la taille de t, je propose donc:
#include <stdio.h>
#include <stdlib.h>
void mafonction(float t[]){
int i;
printf("%d\n", ((sizeof (t))/4)); /*pour faire un test*/
for (i=0; i<=(sizeof(t)/4); i++){
printf("%f\n", t[i]);
}
}
int main(){
float ta[]={1.0, 3.0, 6.0, 3.0, 2.0, 9.0};
mafonction(ta);
return EXIT_SUCCESS;
}
a l execution j obtiens:
1
1.000000
3.000000
ou est mon erreur?
pourquoi la fonction sizeof se comporte t elle de cette façon?
#include <stdio.h>
#include <stdlib.h>
void mafonction(float t[]){
int i;
printf("%d\n", ((sizeof (t))/4)); /*pour faire un test*/
for (i=0; i<=(sizeof(t)/4); i++){
printf("%f\n", t[i]);
}
}
int main(){
float ta[]={1.0, 3.0, 6.0, 3.0, 2.0, 9.0};
mafonction(ta);
return EXIT_SUCCESS;
}
a l execution j obtiens:
1
1.000000
3.000000
ou est mon erreur?
pourquoi la fonction sizeof se comporte t elle de cette façon?
A voir également:
- [C] Fonction prenant en paramétre un tableau
- Tableau word - Guide
- Fonction si et - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Remettre parametre usine pc - Guide
3 réponses
il ya plus simple
tu declare ton tableau comme pointeur tu demande a l'utilisateur sa taille puis tu alloue la bonne memoire en fonction de la taille ensuite tu demande a l'utilisateur de le remplir puis dans ta fonction il faut juste rajouter la taille comme parametre
voici ce que ça donne :
tu declare ton tableau comme pointeur tu demande a l'utilisateur sa taille puis tu alloue la bonne memoire en fonction de la taille ensuite tu demande a l'utilisateur de le remplir puis dans ta fonction il faut juste rajouter la taille comme parametre
voici ce que ça donne :
#include <stdio.h> #include <stdlib.h> void mafonction(float *t, int taille){ int i; printf("\nles valeur du tableau sont : \n"); for (i=0; i<taille; i++) printf("%f\n", t[i]); } int main(){ float *ta ; int taille,i; printf("entre la taille du tableau : \n"); scanf("%d",&taille); ta=(float *) malloc(taille*sizeof(float)); printf("entre les valeurs du tableau : \n"); for(i=0;i<taille;i++){ scanf("%f",&ta[i]);} mafonction(ta,taille); return EXIT_SUCCESS; }
Salut,
sizeof est un opérateur qui renvoie la taille dans objet (int, char, float, etc..) mais pas la taille de ton tableau
la taille de float étant 4 sur ton système le 1 est affiché vu que tu divises par 4
comme il s'agit d'un tableau initialisé avec un certain nombre d'éléments alors tu n'as qu'à écrire
sizeof est un opérateur qui renvoie la taille dans objet (int, char, float, etc..) mais pas la taille de ton tableau
la taille de float étant 4 sur ton système le 1 est affiché vu que tu divises par 4
comme il s'agit d'un tableau initialisé avec un certain nombre d'éléments alors tu n'as qu'à écrire
#include <stdio.h> #include <stdlib.h> void mafonction(float t[]){ int i; for (i=0; i< 6; i++){ printf("%f\n", t[i]); } } int main(){ float ta[]={1.0, 3.0, 6.0, 3.0, 2.0, 9.0}; mafonction(ta); return EXIT_SUCCESS; }