comment initialiser un vide tableau d'entiers en c++
comment mettre NULL ou vide de la valeur à un tableau d'entiers?
struct book{
char name;
char aut;
int det[10];
};
book bk[40];
ici, je veux tous les livres de type de données, il existe det tableaux ont une valeur de zéro pour chaque det[] membre.
- Qu'est ce qu'un "nombre entier chaîne de caractères"?
- voulez-vous dire un tableau int?
- oui je voulais dire int tableau. désolé que mes bases sont peu faible.
Vous devez vous connecter pour publier un commentaire.
Je pense que tu veux dire comment zéro-initialiser un tableau d'entiers.:)
Vous pouvez définir le tableau comme
ou
Vous pouvez utiliser une telle déclaration dans une structure.
Si le tableau est déjà défini, vous pouvez utiliser memset. Par exemple
Vous n'avez pas.
Votre tableau
det
se compose de 10 éléments, dont chacun est un objet de typeint
. La longueur de la matrice ne peut pas être modifié après sa création, et chaque élément a certainsint
valeur (ou contient pas défini poubelle si il n'a pas été initialisée).Pour les types de pointeur, il y a un "pointeur null" valeur qui n'a pas de point à rien et est distincte de toutes les valeurs de pointeur qui sont l'adresse de quelque chose.
N'est pas "nulle" ou "vide" de la valeur pour le type de
int
.0
est parfaitement valideint
valeur.Si vous voulez garder une trace des éléments qui sont valides ou non, vous devrez utiliser une autre méthode. Par exemple, vous pouvez choisir arbitrairement une valeur pour indiquer une entrée non valide. Vous pouvez utiliser
0
à cette fin si vous voulez, mais alors vous ne serez pas en mesure d'utiliser0
comme une entrée valide. Ou vous pouvez utiliserINT_MIN
, le plus négatifint
valeur, ce qui est moins susceptible d'entrer en conflit avec une valeur raisonnable. Mais alors vous devez écrire votre code de sorte qu'il paie toujours attention à la valeur particulière que vous avez choisi.Ou vous pouvez utiliser une autre structure de données, tel qu'un
std::vector <int>
, qui permet de modifier la longueur. Qui structure de données, vous devez utiliser dépend de ce que vous essayez d'accomplir, ce qui n'est pas clair à partir de votre question.Pour un tableau int, vous devez l'initialiser à 0, pas null.
Pour les tableaux de chaîne, vous initialiser les éléments à null, mais pas pour un int.
C++11 changé la sémantique de l'initialisation d'un tableau lors de la construction d'un objet. En les incluant dans le ctor liste d'initialiseur et initialisation avec vide accolades ou des parenthèses, les éléments de la matrice par défaut initialisé.
Dans ce cas, chaque élément de
foo:x
seront initialisées à zéro.Si vous n'êtes pas à l'aide de C++11, vous pouvez initialiser les éléments du tableau dans le corps du constructeur avec
std::memset
.