title: Finding the correct size of a struct from a pointer without creating an object?
body: <p>Sorry if the title is confusing. Here's my <em>struct</em>:</p>
  
  <pre><code>struct l_list{
     int number;
     char *name;
     double value;
     struct l_list *next;
  };
  
  typedef struct l_list *PhoneBook;
  </code></pre>
  
  <p>Main function: </p>
  
  <pre><code>int main(void){
  
     printf("%u\n", sizeof(struct l_list));
  
     PhoneBook person1;
  
     printf("%u\n", sizeof(*person1));
     printf("%u\n", sizeof(PhoneBook));
  
     return 0;
  }
  </code></pre>
  
  <p>The output is:</p>
  
  <blockquote>
    <p>20<br>
      20<br>
      4  </p>
  </blockquote>
  
  <p>I understand that <code>PhoneBook</code> is showing 4 bytes because it's only the size of the <em>pointer</em>, but how can you find the size of the actual <em>struct</em> from the <code>typedef PhoneBook</code>?</p>