Selon ce code:on obtient la taille du tableau.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #include <stdio.h> main() { int i, size; char list_ch[][2] = {'1', 'a', '2', 'b', '3', 'c', '4', 'd', '5', 'e', '6', 'f'}; size = &list_ch[5][1] - &list_ch[0][0] + 1; size *= sizeof(char); printf("Nombre total d'octets: %d.\n", size); for (i=0; i<6; i++) printf("%c %c\n", list_ch[i][0], list_ch[i][1]); return 0; }
Pour moi il faut déjà connaître la taille du tableau (de sa première dimension) pour écrire ce code sinon pourquoi utiliser le nombre «5» dans la ligneet pas un autre nombre? Comment savoir que l'adresse «list_ch[5][1]» existe?
Code : Sélectionner tout - Visualiser dans une fenêtre à part size = &list_ch[5][1] - &list_ch[0][0] + 1;
Personnellement, j'aurais utilisé la fonction sizeof() avec quelque chose comme:Suis-je dans le vrai ou dans l'erreur?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #include <stdio.h> int main(void) { int i, size; char list_ch[][2] = {'1', 'a', '2', 'b', '3', 'c', '4', 'd', '5', 'e', '6', 'f'}; size = sizeof(list_ch); printf("Nombre total d'octets: %d.\n", size); printf("Taille de la premiere dimension: %d.\n", size/2); /* 2 car la taille de la deuxieme dimension */ for (i=0; i<size/2; i++) printf("%c %c\n", list_ch[i][0], list_ch[i][1]); return 0; }







Répondre avec citation



Partager