Passer des tableaux par référence en C
En C, passer des tableaux comme arguments de fonction par référence est communément accepté pour garantir que toute modification apportée à le tableau dans la fonction est reflété dans le code appelant. Cependant, une erreur récente du compilateur a soulevé des doutes sur cette pratique.
Pourquoi "void foo(double& bar)" n'est-il pas autorisé ?
La syntaxe "void foo( double& bar)" tente de transmettre une référence de tableau double à la fonction foo. Cependant, C ne prend pas en charge cette approche. Les tableaux sont principalement transmis par référence, et non par les éléments individuels eux-mêmes.
Une bonne façon de transmettre un tableau par référence
Pour transmettre correctement un tableau par référence, utilisez le syntaxe suivante :
void foo(double (&bar)[10]);
Dans cet exemple, "bar" représente un tableau de doubles avec 10 éléments passés par référence. Cela garantit que toute modification apportée à "bar" dans foo se produira également dans le code appelant.
Solutions alternatives
Passer un tableau par référence est souvent préféré pour éviter problèmes de copie et de performances inutiles. Cependant, il est crucial de noter que les tableaux doivent avoir une taille fixe lorsqu'ils sont passés par référence. Si vous avez besoin d'un tableau de taille arbitraire, envisagez les alternatives suivantes :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!