Pourquoi avons-nous besoin de spécifier la taille de la colonne lors du passage d'un tableau 2D comme paramètre?

Pourquoi pas mes paramètre être

void example(int Array[][]){ /*statements*/}

Pourquoi ai-je besoin de spécifier la taille de la colonne de la matrice? Disons, par exemple, 3

void example(int Array[][3]){/*statements*/}

Mon professeur a dit obligatoire, mais j'ai été codage avant que l'école a commencé et je me suis souvenu qu'il n'y a pas de syntaxe ou de sémantique erreur quand j'ai fait mon paramètre? Ou ai-je raté quelque chose?

  • Il est nécessaire de calculer l'offset relatif de l'élément que vous êtes réellement accès. Le tableau lui-même est juste un bloc linéaire, mais plutôt que de vous avoir à faire (ligne*colwidth + col) (qui fonctionne, d'ailleurs), les décalages sont fait pour vous par le compilateur une fois qu'il sait le second ordre de grandeur.
  • mais si je ne déclarez pas le décalage(le col de la taille) ce qui serait le compilateur par défaut?
  • Soit vous n'avez pas utiliser 2+d tableaux en arrière à l'époque ou il n'était pas C.
InformationsquelleAutor Hoodlum | 2012-10-10