Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

Structures et données



  1. #1
    Titoune971

    Structures et données


    ------

    bonjour,

    Je réalise un programme avec un tableau 2D en allocation dynamique.
    Pour les valeurs du tableaux et sa taille, j'utilise une structure mais je n'arrive pas à récupérer les valeurs.

    Lorsque je compile, je n'est ni erreurs, ni warning. Lorsque j'exécute il me met cette erreur :

    Code:
    0xC0000005: Violation d'accès lors de la lecture de l'emplacement 0x01405627.

    à cette ligne :

    Code:
    t[i]->valeur_tab = insersion_valeurs_tab(t[i]->valeur_tab, l, val);

    Voici mon code complet, merci pour votre aide :

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    typedef struct tab tab;
    struct tab
    {	
    	int valeur;
    	tab	**valeur_tab;
    
    	
    };
    
    tab **insersion_valeurs_tab(tab **t, int l, int val)
    {
    	int i, j, colonne = 1; 
    	/*********************************
    	* Déclaration du tableau a 2D dyn*
    	**********************************/
    	if(t==NULL)
    		{
    		t=((tab **)malloc(l * sizeof(tab*)));
    		for(i=0;i<l;i++)
    			t[i]=((tab*) malloc(3 * sizeof (tab)));
    
    		t[i] -> valeur = val;
    		t[i]->valeur_tab[j] = NULL;
    			
    		}
    	else 
    		t[i]->valeur_tab = insersion_valeurs_tab(t[i]->valeur_tab, l, val);
    
    	return t;
    }
    
    
    void valeurs_tableau2D_dyn ()
    {
    /*************************************
    * Saisies valeurs du tableau a 2D dyn*
    **************************************/
    int i, j, ligne, val;
    tab **t;
    
    printf("Donnez le nombre de ligne de tab: ");
    scanf("%d", &ligne);
    
    
    for(i=0;i<ligne;i++)
    	{
    		for(j=0;j<3;j++)
    			{
    			printf("Donnez les valeurs de tab, val tab num : ");
    			scanf("%d", &val);
    			t = insersion_valeurs_tab(t, ligne, val); 	
    			}
    	}
    printf("\n");
    }
    
    void affiche_tab_2D_dyn(tab **t)
    {
    /*******************************
    * Affichage du tableau a 2D dyn*
    ********************************/
    int i, j, ligne, colonne = 1;
    if(t==NULL) return;
    
    printf("val tableau 2D dyn\n");
    for(i=0;i<ligne;i++)
    	{
    	printf("ligne %d\n",i);
    	for(j=0;j<3;j++)
    			printf("val1= %d\t", t[i] -> valeur_tab[j] -> valeur);	
    	printf("\n");
    	}
    }
    
    
    int main (void)
    {
    	tab **t  = NULL;
    	printf("\n**********tab 2D dyn**********\n");
    
    	while (1){
    		valeurs_tableau2D_dyn ();
    		affiche_tab_2D_dyn(t);
    
    	//Libération de la mémoire
    	for(i=0;i<ligne;i++)
    		free(tab[i]);
    	free(tab);
    	
    	}
    	return 0;
    }

    -----

  2. #2
    Jack

    Re : Structures et données

    Lorsque je compile, je n'est ni erreurs, ni warning.
    C'est très étonnant car i et ligne ne sont pas déclarés dans main().

    A+

  3. #3
    polo974

    Re : Structures et données

    En tout cas, ça a l'air très compliqué pour gérer un tableau 2d de int...
    Si la taille est fixe au moment de la déclaration, il suffit d'un tableau de:
    int ** tab;
    tab=malloc(sizeof(int**)*nblig );
    et de nblig fois:
    tab[curlig]=malloc(sizeof(int)*nbcol);

    ensuite :
    tab[lig][col] = 13; // valeur au hasard

    puis en final nblig fois:
    free(tab[curlig])
    et enfin:
    free(tab)

    *********************

    maintenant, si le but est de gérer un tableau de dimension variable "dans le temps", on se retrouve à gérer des listes (structure data, pointeur), mais ce n'est pas tout à fait ce que tu fais (tu fait un truc presque aussi compliqué mais pas tout à fait, un peu comme si tu voulais gérer des lignes vides, mais que de toute façon, tu remplis...
    Jusqu'ici tout va bien...

Sur le même thème :

Discussions similaires

  1. xml structures de données et mécanismes
    Par verdifre dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 18/12/2009, 21h11
  2. importation de données de excel dans R : données numériques non reconnues
    Par galtine dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 05/02/2009, 20h00
  3. [Biologie Moléculaire] Structures
    Par la-fée-clochette dans le forum Biologie
    Réponses: 6
    Dernier message: 01/10/2008, 16h11
  4. C : Initialisation de structures/tableaux de structures
    Par Blub dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 12/08/2008, 11h57
  5. détermination de structures
    Par eredwen dans le forum Physique
    Réponses: 17
    Dernier message: 21/01/2007, 10h42