I have a struct that looks like this:
struct packet { int a; char data[500]; }; typedef struct packet packet_t;
I\'m a little confused
That's because array decays to a pointer pointing to first element in the sequence. So, packet.data address location is same as &packet.data or &packet.data[0].
packet.data
&packet.data
&packet.data[0]