111 votes

Initialisation d'un tableau 2D entier avec une seule valeur

Avec la déclaration suivante

int array[ROW][COLUMN]={0};

J'obtiens le tableau avec tous les zéros mais avec le suivant

int array[ROW][COLUMN]={1};

Je n'obtiens pas le tableau avec une seule valeur. La valeur par défaut est toujours 0.

Pourquoi ce comportement et comment puis-je initialiser avec tous les 1 ?

EDIT : Je viens de comprendre qu'en utilisant memset avec une valeur de 1, définira chaque octet comme 1 et donc la valeur réelle de chaque cellule du tableau ne sera pas 1 mais 16843009 . Comment puis-je le régler sur 1 ?

7voto

Jogendra Kumar Points 180

Utilice vecteur à la place :

vector<vector<int>> array(ROW, vector<int>(COLUMN, 1));

3voto

inhaler Points 117
char grid[row][col];
memset(grid, ' ', sizeof(grid));

C'est pour initialiser les éléments du tableau de chars en caractères d'espace.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X