Accès à un tableau de structure. (C)

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 :

#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 !
Configuration: Linux
Konqueror 4.2

2 réponses

  1. loupius
     
    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.
    0
  2. Paul99 Messages postés 238 Statut Membre 23
     
    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 !
    0