Existe-t-il un moyen facile de référencer une colonne dans un tableau 2-D en tant que tableau 1D distinct dans tout simplement ancien C (pas C++ ou C#)? C'est facile de faire ça pour la suite. Asssume J'ai 2 fonctions:Référence d'une colonne de tableau à deux dimensions dans C?
double doSomethingWithARow(double theRow[3]);
double doSomethingWithACol(double theCol[100]);
Ensuite, je pourrais utiliser le premier comme ceci:
double matrix[100][3];
double result;
// pass a single row to a function as an array
// this essentially passes the 3-element array at row 48 to the function
for(int i=0; i < 100; i++)
{
result = doSomethingWithARow(matrix[i]);
}
Ce que je veux un moyen d'accéder à une colonne facilement. La seule chose que j'ai trouvé jusqu'à présent est de transformer la matrice pour échanger les rangées avec les colonnes. Mais ce code est censé être aussi efficace que possible en termes de mémoire et de rapidité. Avec toutes les manières compliquées de référencer les pointeurs en C, il semble qu'il devrait y avoir un moyen de le faire.
Vos fonctions utilisent des références alors que l'affiche originale spécifiée C A part cela, c'est une bonne solution si vous êtes désespéré d'éviter d'utiliser un conteneur. –
@Andrew Grant: Bon point, je l'ai changé en pointeurs. –
+1, car ce code doit être préféré à ma solution si les dimensions des tableaux utilisés dans le programme sont fixes. – Stephan202