How to get int array size uisnf macro regardless of array type in C

3 Answers

0 votes
#include <stdio.h>

#define ARRAY_SIZE(x) (sizeof(x)/sizeof((x)[0]))
 
int main()
{
    int arr[] = {4, 9, 0, 1, 8};
 
    printf("%d\n", ARRAY_SIZE(arr));
 
    return 0;
}
 
 
           
/*
run:
        
5
 
*/

 



answered Feb 9, 2025 by avibootz
0 votes
#include <stdio.h>

#define ARRAY_SIZE(x) (sizeof(x)/sizeof((x)[0]))
 
int main()
{
    char arr[] = {'a', 'b', 'c', 'd', 'e', 'f'};
 
    printf("%d\n", ARRAY_SIZE(arr));
 
    return 0;
}
 
 
           
/*
run:
        
6
 
*/

 



answered Feb 9, 2025 by avibootz
0 votes
#include <stdio.h>

#define ARRAY_SIZE(x) (sizeof(x)/sizeof((x)[0]))
 
int main()
{
    float arr[] = {3.14, 5.012, 0.3, 0.07};
 
    printf("%d\n", ARRAY_SIZE(arr));
 
    return 0;
}
 
 
           
/*
run:
        
4
 
*/

 



answered Feb 9, 2025 by avibootz

Related questions

2 answers 299 views
1 answer 181 views
1 answer 156 views
1 answer 125 views
125 views asked Jan 8, 2024 by avibootz
1 answer 134 views
1 answer 173 views
...