Bonjour je suis entrain de réaliser un jeu de plateau,
le plateau qui est rectangulaire est stocké dans un fichier qui contient deux entiers designant les nombre de lignes et de colonnes. puis sous forme de matrice, il y a des entiers qui une fois transformés en binaire indique la nature des pions qui s'y trouvent.
voilà un exemple de fichier
6 6
21 21 21 21 21 21
21 2 2 2 2 21
5 2 0 0 2 5
5 2 0 0 2 5
29 2 2 2 2 29
29 29 29 29 29 29
J'ai un problème pour lire le plateau à partir du fichier pour ensuite l'afficher. Je crois que le problème vient plutot de l'opérateur de lecture.

la structure de données est dans une classe Plateau comme ceci
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#include <fstream>
 
#include <vector>
 
#include <iostream>
 
#include "Coup.h"
 
 
 
 
 
using namespace std;
 
 
 
class Plateau {
 
 
 
private:
 
//plateau représenté par un vecteur de vecteurs
 
vector<vector<int> > v;
 
 
 
typedef pair<int,int> Position;
 
 
 
//liste des positions
 
typedef vector<Position> Listepositions;
 
 
 
//liste des coups
 
typedef vector<Coup> Listedescoups;
 
 
 
 
 
// dimensions
 
int nblignes, nbcolonnes;
 
 
 
public:
 
 
 
// constructeurs
 
Plateau() {}
 
Plateau(int a,int b, vector<vector<int> > vect) {
 
	nblignes = a;
 
	nbcolonnes = b;
 
	v = vect;
 
}
 
 
 
//selecteurs et accesseurs
 
 
 
void setnblignes(int val) {
 
    nblignes = val;
 
  }
 
void setnbcolonnes(int val) {
 
    nbcolonnes = val;
 
  }
 
int getnblignes() const {
 
    return nblignes;
 
  }
 
int getnbcolonnes() const {
 
    return nbcolonnes;
 
  }
void setmatrice(vector<vector<int> > matrice){
	v = matrice;
	}
vector<vector<int> > getmatrice() const {
	return v;
	}
 
 
 
//opérateurs
 
friend ostream& operator << (ostream& o, const Plateau& p);
 
friend istream& operator >> (istream& i, Plateau& p);
voilà le codage des opérateurs "ostream" et "istream"
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
//afficher le plateau
 
ostream& operator << (std::ostream& o, const Plateau& p) {
 
	vector<vector<int> > v = p.getmatrice();
 
	vector<vector<int> >::const_iterator it1;
 
	vector<int>::const_iterator it2;
 
	int m = p.getnblignes();
 
	int n = p.getnbcolonnes();
 
	o << m << ' ' << n << endl;
 
	it1 = p.v.begin();
 
	while (it1!=p.v.end()) {
 
		it2 = (*it1).begin();
 
		while (it2!=(*it1).end()) {
 
			o << *it2;
 
			++it2;
 
		}
 
		o << endl;
 
		++it1;
 
	}
 
}
 
 
 
 
 
// lire le plateau a partir d'un fichier 
 
 
 
istream& operator >> (std::istream& i, Plateau& p) {
 
	int lignes, colonnes; vector<vector<int> > mat;
 
	int valcourante;
 
	i>>lignes;
 
	p.setnblignes(lignes);
 
	i>>colonnes;
 
	p.setnbcolonnes(colonnes);
	int n = lignes;
	int m = colonnes;
 
	mat.resize(n*m);
 
	for (int i=0; i<n; ++i) {
 
		//p.v[i].resize(colonnes);
 
		for (int j=0; j<m; ++j) {
 
			i>>valcourante;
 
			mat[i][j] = valcourante;
 
		}
 
	}
	p.setmatrice(mat);
 
}
J'ai essayé plusieurs fois mais je n'arrive pas à l'afficher .

voiçi l'erreur qu'il me donne
*** glibc detected *** free(): invalid next size (fast): 0x08062350 ***
Abort
est ce que vous avez une idée pour me sortir de là
merci