Je suis débutant dansCet j’ai vraiment besoin d’une méthode efficace pour définir tous les éléments d’un tableau comme étant égaux à zéro ou à la même valeur. Mon tableau est trop long, je ne veux donc pas le faire avec une boucle for.
Si votre tableau a une allocation de stockage statique, il est initialisé par défaut à zéro. Toutefois, si le tableau dispose d'une allocation de stockage automatique, vous pouvez simplement initialiser tous ses éléments à zéro à l'aide d'une liste d'initialisation de tableau contenant un zéro.
// function scope
// this initializes all elements to 0
int arr[4] = {0};
// equivalent to
int arr[4] = {0, 0, 0, 0};
// file scope
int arr[4];
// equivalent to
int arr[4] = {0};
Veuillez noter qu'il n'existe pas de méthode standard pour initialiser les éléments d'un tableau avec une valeur autre que zéro à l'aide d'une liste d'initialisateurs contenant un seul élément (la valeur). Vous devez explicitement initialiser tous les éléments du tableau à l'aide de la liste d'initialisation.
// initialize all elements to 4
int arr[4] = {4, 4, 4, 4};
// equivalent to
int arr[] = {4, 4, 4, 4};
Vous pouvez utiliser memset, si vous êtes sûr de la longueur.
memset (ptr, 0x00, longueur)
int myArray[10] = { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 }; // All elements of myArray are 5
int myArray[10] = { 0 }; // Will initialize all elements to 0
int myArray[10] = { 5 }; // Will initialize myArray[0] to 5 and other elements to 0
static int myArray[10]; // Will initialize all elements to 0
/************************************************************************************/
int myArray[10];// This will declare and define (allocate memory) but won’t initialize
int i; // Loop variable
for (i = 0; i < 10; ++i) // Using for loop we are initializing
{
myArray[i] = 5;
}
/************************************************************************************/
int myArray[10] = {[0 ... 9] = 5}; // This works only in GCC
Si votre tableau est statique ou global, il est initialisé à zéro avant le démarrage de main (). Ce serait l'option la plus efficace.