[c++] Accessing an array out of bounds gives no error, why?