C pointeur de tableau à deux dimensions

Je sais qu'il ya plusieurs questions à propos de ce qui donne de bons (et de travail) et de solutions, mais aucune à mon humble avis qui dit clairement quelle est la meilleure façon d'atteindre cet objectif.
Donc, supposons que nous avons un certain tableau 2D :

int tab1[100][280];

Nous voulons faire un pointeur qui pointe vers ce tableau 2D.
Pour atteindre cet objectif, nous pouvons faire :

int (*pointer)[280]; //pointer creation
pointer = tab1; //assignation
pointer[5][12] = 517; //use
int myint = pointer[5][12]; //use

ou bien :

int (*pointer)[100][280]; //pointer creation
pointer = &tab1; //assignation
(*pointer)[5][12] = 517; //use
int myint = (*pointer)[5][12]; //use 

OK, les deux semble bien fonctionner. Maintenant, je voudrais savoir :

  • quel est le meilleur moyen, le 1er ou le 2ème ?
  • sont à la fois égaux pour le compilateur ? (la vitesse, la perf...)
  • est l'une de ces solutions de manger plus de mémoire que les autres ?
  • ce qui est le plus fréquemment utilisé par les développeurs ?
  • Rappelez-vous qu'un tableau de pointeurs (comme dans int *pointer[280];) n'est pas la même chose comme un tableau de tableaux.
  • bonjour, ferdinand. j'ai corrigé la 1ère solution avec la parenthèse. Il s'excuse.
InformationsquelleAutor Chrysotribax | 2013-02-11