How to find the size of a multidimensional array in C

I declared a two-dimensional array as follows:

char *array[][3] = {
    {"a", "b", "c"},
    {"d", "e", "f"},
    {"u", "v", "w"},
    {"x", "y", "z"}};

How to find out the first dimension?

+5
source share
2 answers

sizeof array / sizeof array [0]

Example: *

#include <stdio.h>

int main(void) {
  int array[4];

    printf("%zd\n", sizeof array / sizeof array[0]);
    printf("%zd\n", sizeof (int));
    printf("%ld\n", (long)(sizeof array / sizeof array[0]));
    return 0;
}


* , type-name, sizeof , . , a type-name C ( ), parens. , C, type-name-in-parens, , , sizeof, generic-associations, cast-expressions. , . , " ", .
+11

:

sizeof(array) / sizeof(char*) / 3

?

, (char *) (3).

, , , .

, 'sizeof("a")', , , , (2, "a" "\ 0" ), (4 32- ). , - ?: -)

+4

All Articles