Accès à un tableau de structure. (C)
Paul99
Messages postés
238
Statut
Membre
-
Paul99 Messages postés 238 Statut Membre -
Paul99 Messages postés 238 Statut Membre -
Bonjour,
Je cherche à accéder depuis une fonction indépendante du main à un attribut d'une structure stcokée dans un tableau créé dynamiquement depuis une autre fonction.
Or, lors de l'accès à un attribut, le système me renvoie une "erreur de segmentation".
Un exemple pour être plus clair :
L'erreur doit être dans l'utilisation de la structure, mais je ne vois pas où.
Merci d'avance pour les idées !
Je cherche à accéder depuis une fonction indépendante du main à un attribut d'une structure stcokée dans un tableau créé dynamiquement depuis une autre fonction.
Or, lors de l'accès à un attribut, le système me renvoie une "erreur de segmentation".
Un exemple pour être plus clair :
#include <stdlib.h>
#include <stdio.h>
typedef struct ex ex;
struct ex
{
int a;
int b;
};
ex* fonc1(void);
void fonc2(ex *test);
int main()
{
ex *test;
test = fonc1();
fonc2(test);
free(test);
return 0;
}
ex* fonc1(void)
{
ex *test;
test = (test*)malloc(25*sizeof(ex);
return test;
}
void fonc2(ex *test)
{
test.a = 1; //Erreur de segmentation.
}
L'erreur doit être dans l'utilisation de la structure, mais je ne vois pas où.
Merci d'avance pour les idées !
A voir également:
- Accès à un tableau de structure. (C)
- Tableau word - Guide
- Trier un tableau excel - Guide
- Imprimer un tableau excel - Guide
- Tableau ascii - Guide
- Acces rapide - Guide
2 réponses
Je suis très surpris que tu puisses exécuter ce programme; en effet, je vois 2 erreurs rédhibitoires pour la compilation:
- test = (test*)malloc(25*sizeof(ex); au lieu de '(ex*)malloc...',
- test.a = 1; au lieu de 'test->a = 1'.
Bonne continuation.
- test = (test*)malloc(25*sizeof(ex); au lieu de '(ex*)malloc...',
- test.a = 1; au lieu de 'test->a = 1'.
Bonne continuation.
Merci pour la réponse !
- Pour la première erreur, il s'agissait d'une erreur de saisie, elle n'existe pas dans mon programme.
- Pour la seconde, je ne connaissais pas le symbole '->' en C, uniquemement dans les objets C++.
Je testerais ça dans quelque minutes, quand j'aurais de nouveau accès au code.
Encore merci !
- Pour la première erreur, il s'agissait d'une erreur de saisie, elle n'existe pas dans mon programme.
- Pour la seconde, je ne connaissais pas le symbole '->' en C, uniquemement dans les objets C++.
Je testerais ça dans quelque minutes, quand j'aurais de nouveau accès au code.
Encore merci !