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 :
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.
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); }
Encore merci d'avance de votre aide.
Partager