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...
    Daudet, tu vas nous manquer...

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, 20h11
  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, 19h00
  3. [Biologie Moléculaire] Structures
    Par la-fée-clochette dans le forum Biologie
    Réponses: 6
    Dernier message: 01/10/2008, 15h11
  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, 10h57
  5. détermination de structures
    Par eredwen dans le forum Physique
    Réponses: 17
    Dernier message: 21/01/2007, 09h42