IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Tableau Bidimensionel Géré Par pointeurs


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4
    Par défaut Tableau Bidimensionel Géré Par pointeurs
    Bonjour à tous et merci à ceux qui auront la gentillesse de m'aider.
    Je cherche à créer un tableau bidimensionel (matrice) grâce à un pointeur qui pointe sur un tableau de pointeur qui pointent eux meme sur des tableaux de char.
    Alors ca parait un peu loufoque, pourquoi ne pas utiliser un tableau bidimensionel basique, tout simplement pour le gérer en mémoire dynamique.

    Donc voila j'ai une struct matrice qui rassemble deux int m (nombre de lignes) et n (nombre de colonnes) et un pointeur pour un tableau de pointeur sur des chars.
    J'ai mis une image pour mieux expliquer la chose (qui est soit dit en passant un peu tordue).


    Voila le source :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    Matrice.cpp:
    
    /**
     * @file Matrice.cpp
     * Projet Projet-Le fil D'Ariane
     * @author l'équipe pédagogique 
     * @version 1 - 23/12/05
     * @brief Composant de pile avec capacité
     * Structures de données et algorithmes - DUT1 Paris 5
     */
    #include <iostream>
    using namespace std;
    #include <fstream>
    #include "Item.h"
    #include "Matrice.hpp"
    
    ici allocation de la matrice qui me rend fou
    void Im(Matrice& M){
    	M.tab=new Item*[M.m];
    	for(int i=0;i<M.m;i++)
    	{
    		M.tab[i]=new char[M.n];
    		}
    }
    //ici allocation de la matrice qui me rend fou			
    Matrice.hpp:	
    
    #ifndef _MATRICE_HPP_
    #define _MATRICE_HPP_
    #include "Item.h"
    struct Matrice{
    	int m,n;
    	Item** tab; };
    //ici declaration de super pointeur pour allocation dynamique
    
    void Im(Matrice& M);
    
    
    #endif //_MATRICE_HPP_
    	
    Item.h:
    #ifndef _ITEM_
    #define _ITEM_
    
    /**
     * @file Item.h
     * Projet sem05-tp-Cpp4
     * @author l'équipe pédagogique 
     * @version 1 23/12/05
     * @brief Spécialisation du type Item
     * Structures de données et algorithmes - DUT1 Paris 5
     */
    
    #include "Position.h"
    typedef char Item;
    
    #endif
    
    tes.cpp:
    #include <iostream>
    #include <fstream>
    using namespace std;
    #include "Matrice.hpp"
    #include "Item.h"
    
    int main(){
    	
    	      int m,n;
    	      Matrice M;
    	      ifstream Ma;
    	      char nom[45];
    	      cout<< "quel est le nom du fichier a ouvrir?";
    	      cin >> nom;
    	      Ma.open(nom,ios::in);
    	      if(Ma.fail()){
    		      cout<<"bug";
    		      exit(1);}
    	      cout<< "nombre de lignes?";
    	      cin >> m;
    	      M.m=m;
    	      cout<<"nombre de colonnes?";
    	      cin >>n;
    	      M.n=m;
    	     Im(M);
    	
    	     Ma.close();
    	
    	     return(0);
    }
    Voila voila je pense que mon source est bon mais lorsque je débogue avec Eclipse le pointeur tab ne prend pas de structure matricielle mais simplement un pointeur sur un pointeur sur un char.
    Encore merci d'avance de votre aide.

  2. #2
    Membre émérite
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Par défaut
    tu veux dire que le debouggeur te dit que ta variable n'est qu'un pointeur sur un pointeur sur un char ?? j'ai envie de te demander ou est le probleme, vu que c'est exactemant ce que c'est a priori... y a t il un plantage ou une erreur dans ton code ? en le survolant, il ne me semble pas qu'il y ait de probleme..

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4
    Par défaut
    Le problème que j'ai en fait c'est que la je ne peux stocker qu'une variable alors que je veux en stocker m*n vois tu mais apparemment ca fonctionne normalement.
    Merci de ta rapidité

  4. #4
    Membre émérite
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Par défaut
    euh.. tu me dis a la fois que tu as un probleme et que ca fonctionne normalement... que dois je en deduire ?

  5. #5
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Je vois bien quantité de problèmes, mais pas là où cela te chagrine.

    Un "T**" est un pointeur de pointeurs. Tu afficher les choses de façon plus intelligente, il faut voir avec ton débuggueur si tu peux rajouter des "hooks" pour te simplifier l'analyse.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4
    Par défaut
    C'est bon en fin de comtpe ca fonctionne super bien, c'est le compilateur qui me donnait une représentation erronée du tableau de pointeur.
    Desole de vous avoir dérangé pour rien.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. decouper tableau de char en 2 pars pointeur
    Par kosumo dans le forum Débuter
    Réponses: 4
    Dernier message: 12/10/2009, 11h03
  2. Lecture de tableau par pointeur
    Par SPACHFR dans le forum Débuter
    Réponses: 7
    Dernier message: 16/05/2007, 16h43
  3. Passage de tableau à une fonction par pointeur
    Par progfou dans le forum C++
    Réponses: 15
    Dernier message: 23/02/2007, 11h45
  4. Tri de tableau par pointeurs
    Par colocolo dans le forum Pascal
    Réponses: 9
    Dernier message: 19/02/2007, 21h02
  5. Réponses: 8
    Dernier message: 10/03/2006, 17h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo