En C je fais ce qui suit, essayez:
sizeof(matrix) /sizeof(matrix[0]) <- outer array
sizeof(matrix[0])/ sizeof(matrix[0][0]) <- inner array
linux ~ $ cat sizeof_test.c
#include <stdio.h>
int main(void)
{
int matrix[][3] = { {1,2,3}, {1,2,3}, {1,2,3}, };
int matrix2[][3] = { {1,2,3}, {1,2,3}, {1,2,3}, {1,2,3}, };
int matrix3[][4] = { {1,2,3,4}, {1,2,3,4}, {1,2,3,4}, {1,2,3,4}, };
printf("array (%d) - elements(%d)\n", sizeof(matrix) /sizeof(matrix[0]), sizeof(matrix[0])/ sizeof(matrix[0][0]));
printf("array (%d) - elements(%d)\n", sizeof(matrix2) /sizeof(matrix2[0]), sizeof(matrix2[0])/ sizeof(matrix2[0][0]));
printf("array (%d) - elements(%d)\n", sizeof(matrix3) /sizeof(matrix3[0]), sizeof(matrix3[0])/ sizeof(matrix3[0][0]));
return 0;
}
linux ~ $ gcc sizeof_test.c -o sizeof_test
linux ~ $ ./sizeof_test
array (3) - elements(3)
array (4) - elements(3)
array (4) - elements(4)
linux ~ $
oui son travail si vous définissez la condition X <3 mais il n 'une approche dynamique? un sizeof ou quelque chose? –
Utilisez-vous Objective-C pour Cocoa? Si c'est le cas, vous pouvez utiliser un NSArray ou NSMutableArray, puis vous pouvez utiliser myArray.Count. http://developer.apple.com/DOCUMENTATION/Cocoa/Reference/Foundation/Classes/NSArray_Class/Reference/Reference.html – Sean
Le problème avec le codage dur 3 dans la boucle, c'est quand quelqu'un ajoute un autre élément à la matrice, le sizeof() les conventions sont utilisées pour ne pas avoir à réécrire toutes les tailles codées, quand cela arrive. – sfossen