C: Use sizeof operator to get the length of an array.
https://github.com/pereiradaniel/c_programs/blob/master/find_array_len.c
// Use the size of operator to get the array length. #include <stdio.h> #include <stdlib.h> #include "length.h" // defines length of an array #define SIZE 9 // use a pre-processor directive to store the size of the array void print_size(int array[]) { int length = sizeof(array) / sizeof(array[0]); printf("LENGTH: %d\n", length); } int main(int argc, char *argv[]) { // const int size = 9; // use a const to store the size of the array int array[SIZE] = {1,2,3,4,5,6,7,8,9}; // sizeof queries size of the object type: https://devdocs.io/c/language/sizeof // Different ways to calculate the length of the array: // int length = sizeof(array) / sizeof(int); // int length = sizeof(array) / sizeof(array[0]); int length = LENGTH(array); printf("length of array: %d\n", length); printf("sizeof(array), number of bytes used to store the array: %d\n", sizeof(array)); printf("sizeof(array[0]), the number of bytes to store element[0] of the array: %d\n", sizeof(array[0])); printf("sizeof(int): %d\n", sizeof(int)); // loop through the array, printing the elements to the screen: for (int i = 0; i < LENGTH(array) - 1; ++i) { printf("array[%d] = %d\n", i, array[i]); } // dynamically allocate space for an array of 100 values. this is a pointer to the array on the heap // sizeof(dynamic_array) will output the size of the POINTER int *dynamic_array = malloc(sizeof(int) * 100); printf("sizeof(dynamic_array): %d\n", sizeof(dynamic_array)); // 8 bytes, size of pointer to an int int dynamic_length = LENGTH(dynamic_array); // pointer to array is passed! printf("dynamic_length: %d\n", dynamic_length); free(dynamic_array); // free the memory so no memory leak print_size(array); return 0; }