web-dev-qa-db-fra.com

Initialiser les valeurs d'un tableau dans une structure

J'ai une structure qui contient plusieurs tableaux. Les tableaux ont le type unsigned char [4].

Je peux initialiser chaque élément en appelant

struct->array1[0] = (unsigned char) something;
... 
struct->array1[3] = (unsigned char) something;

Je me demande simplement s'il existe un moyen d'initialiser les 4 valeurs sur une seule ligne.

SOLUTION: j'avais besoin de créer un tableau temporaire avec toutes les valeurs initialisées, puis d'appeler memset () pour copier les valeurs dans le tableau struct.

12
Nick Schudlo

Vous pouvez également boucler:

  for(i = 0; i < 4; i++) the_struct->array1[i] = (unsigned char) something;

Cela fonctionnera même lorsque vous n'avez pas de caractère, mais par exemple int (et valeurs! = 0). En fait, définir par exemple 1 une structure faite de int (lorsque la taille de int est supérieure à 1) n'est pas la bonne façon de les initialiser.

1
ShinTakezou