A declaration of 100 pointers in such an array, does not always guarantee a segfault. What it does guarantee is a memory overwrite if you use more pointers than the array size. However, if the overwritten memory belongs to other variables you have declared, their values will be trashed, but you will not have a fault right there and then, until later in your code you try to use whatever values you have stored in those variables, in which case, your code may misbehave but not crash or it may crash at some point but for a reason not so obviously related to the overwrite of the initial array.
One case that you might have a crash immediately upon using the 101st location of that array is if the array happens to be allocated by the compiler at the exact end of the current data section, and then next one is write-protected. But this is a compiler and OS controlled issue.