Too few updates lately… I have been pretty busy at work. Here’s something I’ve
learned today. In C, when I wanted to initialize an array to all zeros I used
memset
. But there’s a simpler way:
int array[3] = {0, 0, 0};
OK, that’s nice. But what if the array is really big? There’s a shorter version with the same effect:
int array[3] = {};
When you omit a parameter in an initializer, it automatically defaults to the type’s zero value. If you want to initialize an array without specifying all the elements, you can do something like that:
int array[10] = {1, [3] = 3, [8] = 2};
This will produce an array like that:
[1, 0, 0, 3, 0, 0, 0, 0, 2, 0]
See GCC’s doc about Designated Initializers.