[C] probleme avec une fonction renvoyant unet
Jingle
-
tafiscobar Messages postés 1277 Date d'inscription Statut Contributeur Dernière intervention -
tafiscobar Messages postés 1277 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
voila mon petit souci, je n'arrive pas a récupper les info de ma fonction dans equation.
Lorsque je test mon prog le puts du main ne me renvoit rien alors que celui a l'interieur de ma fonction me renvoit les bonnes choses.
Pour info voici comment se compose le fichier text "test.txt"
3
cos(t)
sin(t)
tan(t)
le chiffre 3 correspond au nombre de fonctions présentes, c'est pour cela que je passe par un malloc
voici mon source
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
struct equa{char A[41];};
void fonction(struct equa *equ)
{
char t;
int i,m;
FILE *f;
f=fopen("test.txt", "r");
fscanf(f,"%d",&m);
printf("%d\n",m);
equ=malloc(sizeof(struct equa)*m);
for (i=0; i<(m); i++)
{
fscanf(f,"%s",(equ[i].A));
}
fclose(f);
for (i=0; i<(m); i++)
puts((equ[i].A));
}
main()
{
struct equa (*equation);
int i;
fonction(&equation);
for (i=0; i<(3); i++)
puts(equation[1].A);
}
Merci de votre aide
voila mon petit souci, je n'arrive pas a récupper les info de ma fonction dans equation.
Lorsque je test mon prog le puts du main ne me renvoit rien alors que celui a l'interieur de ma fonction me renvoit les bonnes choses.
Pour info voici comment se compose le fichier text "test.txt"
3
cos(t)
sin(t)
tan(t)
le chiffre 3 correspond au nombre de fonctions présentes, c'est pour cela que je passe par un malloc
voici mon source
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
struct equa{char A[41];};
void fonction(struct equa *equ)
{
char t;
int i,m;
FILE *f;
f=fopen("test.txt", "r");
fscanf(f,"%d",&m);
printf("%d\n",m);
equ=malloc(sizeof(struct equa)*m);
for (i=0; i<(m); i++)
{
fscanf(f,"%s",(equ[i].A));
}
fclose(f);
for (i=0; i<(m); i++)
puts((equ[i].A));
}
main()
{
struct equa (*equation);
int i;
fonction(&equation);
for (i=0; i<(3); i++)
puts(equation[1].A);
}
Merci de votre aide
A voir également:
- [C] probleme avec une fonction renvoyant unet
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Fonction filtre excel n'existe pas - Forum Excel
3 réponses
salut, dans ton main, tu lui as donné un pointeur de pointeur alors q ta fct prend un pointeur. Tu devrais faire ceci c'est plus propre :
equa *fct () { struct equa *eq = ... // le code return eq; } // ds le main struct equa *eq = fct ();
merci,
effectivement, cela marche comme cela.... il me reste juste un petit souci comment je peuw recupperer mon parametre m(nb d'équation) pour pouvoir l'afficher a l'aider de puts pour faire ma boucle à l'aide de for; car en passant par un void j'avais pas ce probleme...
thk again & again
effectivement, cela marche comme cela.... il me reste juste un petit souci comment je peuw recupperer mon parametre m(nb d'équation) pour pouvoir l'afficher a l'aider de puts pour faire ma boucle à l'aide de for; car en passant par un void j'avais pas ce probleme...
thk again & again
salut, ton paramétre tu le lisais depuis un fichier, donc je ne vois pas ou est le probléme maintenant? le fichier tu continues de le lire toujours non? car dans ton main je ne vois pas ou tu utilises le "m".
tafiscobar "lou waye def bopame"
la nullite n'existe pas, l'ignorance oui, ah je suppose!!!
tafiscobar "lou waye def bopame"
la nullite n'existe pas, l'ignorance oui, ah je suppose!!!