Peut-on (re) définir toutes les valeurs d'un tableau sur une ligne (après son initialisation)?
En C, je sais que je peux faire un tableau comme ceci
int myarray[5] = {a,b,c,d,e};
Cependant, imaginez le tableau a déjà été initialisé comme
int myarray[5];
et puis à un certain moment par la suite, je voulais créer/modifier toutes les valeurs sans passer
myarray[0] = a;
myarray[1] = b;
myarray[2] = c;
myarray[3] = d;
myarray[4] = e;
mais plutôt, quelque chose de plus comme
myarray = {a,b,c,d,e};
La raison pour laquelle je demande c'est parce que si je déclare mon tableau sur le tas, je vais initialiser le tableau, par exemple:
int* myarray = malloc(5*sizeof(int));
Alors je voudrais être en mesure de saisir toutes les valeurs dans une seule ligne (surtout pour rendre mon code plus propre)
source d'informationauteur tom
Vous devez vous connecter pour publier un commentaire.
Voici une solution qui est de toutes les normes compatibles (C89, C99, C++)
Il a l'avantage que vous ne vous vous inquiétez à propos de la saisie de données dans un seul endroit. Aucun autre code qui doit changer - il n'y a pas des numéros de magie. Tableau est déclaré sur le tas. Le tableau de données est déclarée const.
(Cliquez ici pour essayer de l'exécuter dans Codepad)
Pas, C n'ont pas cette fonctionnalité. Si vous êtes l'établissement de tous les éléments du tableau à la même valeur d'utilisation
memset(3)
.