title: malloc function on linux
body: <p>I'm learning Linux C programming recently,and there is a question have puzzled me long time.The question is that when we use malloc to allocate some memory,we can use the addresses that over the size we required,but when we access a large address than we required,the system may kill our process.just like the following codes: </p>
  
  <pre><code>int *p = malloc(10*sizeof(int));
  *(p + 10) = 1;
  </code></pre>
  
  <p>when we use this clause,the system may not kill our process,but when we use:</p>
  
  <pre><code>*(p +10000) = 1;
  </code></pre>
  
  <p>the system may kill our process.
  So why does the system do it in this way?</p>