Comment initialiser un tableau 2D avec des 0 lorsque je le déclare?
double myArray[3][12] = ?
double myArray[3][12] = {0};
ou, si vous voulez éviter l’avertissement de gcc “Accolades manquantes autour de l’initialiseur” (l’avertissement apparaît avec -Wall
ou, plus précisément, -Wmissing-braces
)
double myArray[3][12] = {{0}};
Si vous souhaitez initialiser avec des zéros, procédez comme suit:
double myArray[3][12] = { 0 };
Si vous souhaitez renseigner les valeurs réelles, vous pouvez imbriquer les accolades:
double myArray[3][3] = { { 0.1, 0.2, 0.3 }, { 1.1, 1.2, 1.3 }, { 2.1, 2.2, 2.3 } };
La méthode de pmg est correcte, cependant, notez que
double myArray[3][12] = {{}};
donnera le même résultat.
De plus, gardez à l’esprit que
double myArray[3][12] = {{some_number}};
ne fonctionnera comme prévu que lorsque nombre_noix est égal à zéro.
Par exemple, si je devais dire
double myArray[2][3] = {{3.1}};
le tableau ne serait pas plein de 3.1, au lieu de cela il sera
3.1 0.0 0.0 0.0 0.0 0.0
(le premier élément est le seul défini à la valeur spécifiée, les autres sont mis à zéro)
Cette question (c initialisation d’un tableau normal avec une valeur par défaut) a plus d’informations
@JSB ձոգչ a proposé la syntaxe d’initialisation avec les valeurs réelles, ce qui correspond parfaitement au titre de la question, ce qui m’a amené ici (je m’intéressais à l’ordre des index).
myArray[3][2] = { { 0.1, 0.2 }, { 1.1, 1.2 }, { 2.1, 2.2 } };
Le premier index est l’index de ligne est l’index le plus lent. C’est ce qu’on appelle l’ordre C par opposition à l’ordre F (Fortran).
je pense que ce sera
double myArray[3][12] = {0}
Vous pouvez utiliser
double myArray[3][12] = { 0 };
ou
double myArray[3][12]; memset(myArray, 0, sizeof(double) * 3 * 12);
La méthode de pmg fonctionne mieux car elle fonctionne sur le concept que si vous initialisez partiellement un tableau, le rest d’entre eux obtient la valeur par défaut de zéro. sinon, vous pouvez déclarer le tableau en tant que variable globale et s’ils ne sont pas initialisés, les éléments du tableau seront automatiquement réglés sur la valeur par défaut (selon les compilateurs), zéro.