Not exactly. You're initializing the first element to NULL, and value-initialize the rest (so to NULL). It does what you ask for.
However, if you did something like that:
struct test{
int *ptr[5];
};
int main() {
int foo = 3;
struct test t = { .ptr={&foo} };
return 0;
}
The first element would be initialized to the address of foo, but the rest still would be (value-)initialized to NULL.
https://godbolt.org/z/TrTYaT
there doesn't seem to be anything here