Étant donné une matrice, trouver le nombre de lignes et de colonnes
Je veux trouver le nombre de lignes et de colonnes d'une matrice a, sans avoir la connaissance de tout autre chose.
Exemple:
int * findElements(int matInput[][]) {
/*Count blah*/
/*Now to run a loop till the number of rows*/
/*I need to know the size of the matrix to run the loop above*/
}
Je ne peux pas exécuter une boucle pour trouver la taille que je ne sais pas quand à la fin et aussi ne sais pas si la matrice a été initialisé alors que la création.
Est-il une autre méthode?
OriginalL'auteur noMAD | 2011-12-16
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas le faire en C. Il est littéralement impossible, sans une sorte de renseignements supplémentaires, pour trouver la taille d'un tableau donné juste un pointeur vers elle.
Langues qui ne prennent en charge l'interrogation de la matrice de longueur de ce faire par le passage de quelques informations supplémentaires. En C, vous pourriez faire cela, mais vous devez le faire de manière explicite:
Un peu plus avancé, vous pouvez placer les données du tableau à droite après le
struct matrix
dans la mémoire, ce qui réduit le nombre de pointeur accède nécessaire et est donc légèrement plus rapide. Mais la technique de base reste la même.Votre supposition est fausse
Tableau.longueur en Java fonctionne secrètement le passage de pointeurs vers une structure qui contient un champ de longueur et un pointeur vers le tableau réel. Vous pouvez faire quelque chose comme cela dans C. Mais il ressemblerait
findElements(struct matrix *input)
pasfindElements(int matInput[][])
.OriginalL'auteur bdonlan
OriginalL'auteur anonymous
Vous pouvez définir la longueur maximale des lignes et des colonnes, alors utilisez-les pour effectuer une itération sur le tableau.
Ce juste définit la taille de la matrice, il n'est pas indispensable d'avoir tous ses éléments rempli
OriginalL'auteur Hunter McMillen