title: Address of array vs. address of array[0] - C language
body: <p>My question is why does the address of an array differ from the address of its first position? </p>
  
  <p>I'm trying to write my own malloc, but to start out I'm just allocating a chunk of memory and playing around with the addresses. My code looks roughly like this:</p>
  
  <pre><code>#define BUFF_SIZE 1024
  static char *mallocbuff;
  
  int main(){
       mallocbuff = malloc(BUFF_SIZE);
       printf("The address of mallocbuff is %d\n", &amp;mallocbuff);
       printf("The address of mallocbuff[0] is %d\n", &amp;mallocbuff[0]);
  }
  </code></pre>
  
  <p>&amp;mallocbuff is the same address every time I run it. &amp;mallocbuff[0] is some random address every time. I was expecting the addresses to match each other. Can anyone explain why this isn't the case?</p>