Bonjour à tous.
Das le projet sur lequel je travaille, je dois initializer les valeurs d'un tableau, et je souhaite le faire à la compilation du programme. Cependant, la taille du tableau est défini (via #define) dans un autre fichier header. Et donc il peut changer à tout moment, selon le projet.
Je souhaite donc faire mon code le plus générique possible, afin d'éviter de revenir le refaire à chaque fois que la taille du tableau change.
Ce que je faisais avant :
int tmpArray[SIZE] = {[0 ... (SIZE-1) = 10};
Et ceci fonctionne bien, tant que je dois donner à tous les éléments du tableau la même valeur.
Je peux aussi utiliser des fonctions, par exemple :
int tmpArray[SIZE] = {[0 ... (SIZE-1) = pow(10,10)};
Mais de nouveau, tous les valeurs du tableau sont les mêmes.
Je souhaite donner des valeurs différentes au tableau, en suivant le format :
1, 11, 101, 1001, ...
Autrement dit :
1, pow(10, 1)+1, pow(10, 2)+1, ..., pow(10, SIZE-1)+1
Mais je n'ai pas encore trouvé de moyen pour faire ceci. Je ne peux pas utiliser de 'for' ou 'while' dans l'initialisation du tableau (du moins, je n'ai pas encore trouvé de moyen), et je n'ai pas trouvé s'il y a un variable de boucle interne que je pourrais utiliser.
J'ai essayé :
1 2
| int i=0;
int tmparray[SIZE] = {[0 ... (SIZE-1)] = pow(10, i++)}; |
Mais ça n'a pas fonctionne comme je le voulais, puisqu'il a assigné la valeur de 'pow(10, 0)', c'est-à-dire 1, à tous les éléments du tableau, avant d'incrémenter la valeur de 'i' à 1.
Ainsi, je souhaite savoir s'il y a moyen d'initialiser la valeur du tableau, dont on ignore la taille mais qu'on connait la logique des valeurs, au moment de sa création.
Merci beaucoup de toute aide, cela est fort apprécié.
Mad Ant
Partager