f0rtex
01-04-2003, 20:59
Hallo Leute
kann mir jemand den Sinn folgender Cast's erklären.
Meine Fragen sind als Kommentare an den entsprechenden Stellen :rolleyes:
// mainfile.c
unsigned char packet[
#if !defined(LINUX)
sizeof(struct ip) +
#else /* LINUX */
sizeof(struct iphdr) +
#endif /* LINUX */
sizeof(struct tcphdr)];
struct tcphdr *tcp;
....
tcp = (struct tcphdr *)(packet + sizeof(struct iphdr));
// wieso castet er hier tcp in einen charpointer oder besser gesagt, wieso
// definiert er die Funktion nicht so, dass sie einen ptr auf struct tcphdr erwartet?
tcp_gen((char *)tcp,sport,dport,seq,ack);
Hier noch der Anfang der Funktion tcp_gen.
void tcp_gen(char *packet,unsigned short sport, unsigned short dport,unsigned long seq, unsigned long ack)
{
struct tcphdr *tcp;
tcp = (struct tcphdr *)packet;
memset((char *)tcp,'\0',sizeof(struct tcphdr));
...
}
MfG
f0rtex
kann mir jemand den Sinn folgender Cast's erklären.
Meine Fragen sind als Kommentare an den entsprechenden Stellen :rolleyes:
// mainfile.c
unsigned char packet[
#if !defined(LINUX)
sizeof(struct ip) +
#else /* LINUX */
sizeof(struct iphdr) +
#endif /* LINUX */
sizeof(struct tcphdr)];
struct tcphdr *tcp;
....
tcp = (struct tcphdr *)(packet + sizeof(struct iphdr));
// wieso castet er hier tcp in einen charpointer oder besser gesagt, wieso
// definiert er die Funktion nicht so, dass sie einen ptr auf struct tcphdr erwartet?
tcp_gen((char *)tcp,sport,dport,seq,ack);
Hier noch der Anfang der Funktion tcp_gen.
void tcp_gen(char *packet,unsigned short sport, unsigned short dport,unsigned long seq, unsigned long ack)
{
struct tcphdr *tcp;
tcp = (struct tcphdr *)packet;
memset((char *)tcp,'\0',sizeof(struct tcphdr));
...
}
MfG
f0rtex