Création matrice en c++

Signaler
-
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
-
comment créer une matrice de type char avec allocation statique de mémoire en c++ ???
j'ai essayé avec ce code mais il ne marche pas comme il faut

char matrice [10][10];
for ( i=0; i<n; i++ ){
for ( j=0; j<n; j++){
matrice[i][j]=0;}}
A voir également:

2 réponses

Messages postés
3819
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
28 septembre 2020
113
Bonjour.

1) Ne créer pas 50 questions en même temps. Attends d'avoir la réponse à une question avant d'en créer une autre.
2) Utilise des balises de code ! Je te l'ai déjà dit. A partir de maintenant, je supprimerais tout message qui n'en contient pas.

Pour répondre à ta question, le code est bon. Etant donné que tu ne donnes aucun détail, difficile de t'aider... (Qu'est-ce qui ne va pas ?).

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
20
Salut,

tu peux faire un "patron" pour avoir des tailles dynamiques (matrice carrée ou non)
puis faire des macros pour init et affichage

Dans un deuxième temps, on peut "templatiser" aussi le type de l matrice en plus des tailles.

Exemple :

// Un patron de matrice (char)
template<size_t N, size_t M> 
struct MAT
{
char _m[N][M];
};

// Macro init
#define IDENTMAT(mat,N,M) {memset(mat, '0', (N*M)*sizeof(char));}

// Macro log
#define LOGMAT(mat,N,M) { \
for(int i=0;i<N;i++) { \
for(int j=0;j<M;j++) \
std::cout << (mat)->_m[i][j] << " "; \
std::cout << std::endl; } }

typedef MAT<4,4> MAT4X4;	// exemple avec typedef taille connue

int _tmain(int argc, _TCHAR* argv[])
{
// Avec un typedef pour une matrice 4X4 allouée sur le heap
MAT4X4* pMat4X4 = new MAT4X4;
IDENTMAT(pMat4X4,4,4);
LOGMAT(pMat4X4,4,4);
delete pMat4X4;

std::cout << std::endl << std::endl;

// sans typedef pour une matrice 10X10 sur la stack
MAT<10,10> mat10X10;
IDENTMAT(&mat10X10,10,10);
mat10X10._m[0][0] = 'X';
LOGMAT(&mat10X10,10,10);

std::cout << std::endl << std::endl;

// Matrice non carrée
MAT<10,5> mat10X5;
IDENTMAT(&mat10X5,10,5);
LOGMAT(&mat10X5,10,5);

return 0;
}
bye...