C will never stop you from making mistakes
<p><pre><code>  int main (int argc, char* argv[]) {
  
      (void)argc;
      (void)argv;

      struct Meow* p_cat = (struct Meow*)malloc(sizeof(struct Meow));
      struct Bark* p_dog = p_cat;
      &#x2F;&#x2F; :3
 
      return 0;
  }
</code></pre>
Why declare main that way if you are going to discard the arguments?<p>Why cast the malloc? This isn&#x27;t C++.