Etre capable de définir un tableau par ex.Initialisation de Lvalues, Rvalues et Array en C
int a[] = {1,2,3};
est très pratique, cependant, l'un de réseau est une valeur r de sorte que je ne peut pas modifier ultérieurement les valeurs de a, par exemple,
a[] = {4,5,6};
Le contexte de vouloir le faire est l'écriture d'un tas de tests unitaires où je suis alimentation dans les tableaux aux fonctions et tester les sorties. Je cours des essais sur la même fonction avec différentes entrées et voudrais éviter d'avoir des noms uniques pour mes tableaux d'entrée, par exemple. Je vais avoir à faire:
int test1_a[] = {1,2,3};
/* calls to functions */
int test2_a[] = {4,5,6};
/* calls to functions */
De plus, si je veux passer un pointeur vers un tableau dans une fonction que je dois le 1er casting comme ceci:
int a[] = {1,2,3};
int *b = a;
my_func(&b);
passer un pointeur vers une valeur r comme cela ne fonctionne pas:
my_func(&a);
Ma question est de savoir s'il y a une autre façon de facilement initialiser un tableau de valeurs sans souffrir de ces limites? (Notamment en vue de le rendre facile d'écrire de nombreux tests unitaires similaires sans chaque essai ayant un ensemble unique de noms de tableaux)
Cela peut être lié: http://stackoverflow.com/q/8380348/726361 –
Si votre seul problème est la réinitialisation du tableau sans recompilation, alors vous pouvez le lire à partir d'un fichier ou d'une base de données. (ne pas oublier la taille!). – wildplasser
bon point - je pense que c'est peut-être le chemin à parcourir. Je passe de Python à C en ce moment d'où toutes ces questions (peut-être) stupides sur les bases ... – bph