&gt; reading past the end of an array will always segfault the program immediately. or reading past the end of an array will return (arrayType)0<p>How would this work when you pass the array (i.e., the pointer) to a function? In order to do what you describe, every pointer would need to include bounds information. This would break the C ABI, so your code would no longer link with existing C libraries.