Structures et données
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

Structures et données



  1. #1
    invite8a011b82

    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
    Modérateur

    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...

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 invitef67ae3c5 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 05/02/2009, 20h00
  3. [Biologie Moléculaire] Structures
    Par invite9d710677 dans le forum Biologie
    Réponses: 6
    Dernier message: 01/10/2008, 16h11
  4. C : Initialisation de structures/tableaux de structures
    Par invitef1d0ad93 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 12/08/2008, 11h57
  5. détermination de structures
    Par inviteca4fc44a dans le forum Physique
    Réponses: 17
    Dernier message: 21/01/2007, 10h42