Skip to content

Instantly share code, notes, and snippets.

@ialexpovad
Created April 4, 2023 11:21
Show Gist options
  • Save ialexpovad/b8fd1e9251d9888e556423c765551f35 to your computer and use it in GitHub Desktop.
Save ialexpovad/b8fd1e9251d9888e556423c765551f35 to your computer and use it in GitHub Desktop.
#define length(array) ((sizeof(array)) / (sizeof(array[0])))
type yourArray[] = {your, values};
length(yourArray); // returns length of yourArray
#include <stdlib.h>
#include <stdio.h>
#define length(array) ((sizeof(array)) / (sizeof(array[0])))
int main()
{
const char *myStrings[] = {"Foo", "Bar", "Hello, World!"}; // 3 elements
int myNums[] = {0, 1, 5, 7, 11037}; // 5 elements
char myChars[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g'}; // 7 elements
printf("Length of myStrings array: %lu\n", length(myStrings));
printf("Length of myNums array: %lu\n", length(myNums));
printf("Length of myChars array: %lu\n", length(myChars));
return 0;
/* Output:
Length of myStrings array: 3
Length of myNums array: 5
Length of myChars array: 7
int *myNums = (int *)malloc(3 * sizeof(int)); // Space for 3 integers
printf("Length of myNums: %lu\n", length(myNums)); // Outputs 2 instead of 3
*/
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment