In your initializer list constructor, make sure the length of the initializer list is not greater than the size of your array!
Also, memset is not recommended in C++. Actually, it's outright dangerous. Use std::fill instead.

And actually,
memset(_values, 0, sizeof(_values) * sizeof(*_values));
would not work for a dynamic length array since sizeof(_values) would be the size of the pointer, and not the array.
Also, sizeof returns the entire size (in bytes) of the array, so don't multiply it with anything.