Doublons possibles:
Comment initialiser un tableau à quelque chose en C sans boucle?
Comment initialiser un tableau en C
Comment puis-je mettre à zéro une taille connue d'un tableau sans utiliser de boucle for ou toute autre boucle?
Par exemple:
arr[20] = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;
C'est le long chemin ... J'en ai besoin le court chemin.
int arr[20] = {0};
C99 [$6.7.8/21]
S'il y a moins d'initialiseurs dans une liste entre accolades qu'il n'y a d'éléments ou de membres d'un agrégat, ou moins de caractères dans un littéral de chaîne utilisé pour initialiser un tableau de taille connue qu'il n'y a d'éléments dans le tableau, le reste de l'agrégat doit être initialisé implicitement comme les objets qui ont une durée de stockage statique.
int arr[20];
memset(arr, 0, sizeof arr);
Remarque: vous pouvez utiliser le memset avec n'importe quel caractère.
Exemple:
int arr[20];
memset(arr, 'A', sizeof(arr));
Peut également être partiellement rempli
int arr[20];
memset(&arr[5], 0, 10);
Mais attention. Ce n'est pas limité pour la taille du tableau, vous pourriez facilement endommager gravement votre programme en faisant quelque chose comme ceci:
int arr[20];
memset(arr, 0, 200);
Cela va fonctionner (sous Windows) et zéro mémoire après votre tableau. Cela pourrait endommager d'autres valeurs de variables.
homme bzero
NAME
bzero - write zero-valued bytes
SYNOPSIS
#include <strings.h>
void bzero(void *s, size_t n);
DESCRIPTION
The bzero() function sets the first n bytes of the byte area starting
at s to zero (bytes containing '\0').
Utilisation de memset
:
int something[20];
memset(something, 0, 20 * sizeof(int));
int arr[20] = {0}
serait plus facile si cela ne devait être fait qu'une seule fois.