So I'm reading the post here And I've come across this block of code
char packet[sizeof(icmphdr)];
memset(packet, 0, sizeof(packet));
icmphdr *pkt = (icmphdr *)packet;
From what I understand, the are declaring a char array that is the size of icmphdr and then it gets fuzzy for me after that. The line following this I don't even know where to start to interprete this.