This only works for arrays allocated on the stack, not for heap-allocated arrays via malloc or similar.
I remember trying that, and I think it only works in the scope where you declared the array. So for example if you pass the array to a function, the size info is lost. Might be because of the "arrays decay to pointers" thing
It works, but keep in mind that arrays != pointers.