Umwandlung array in struct in c

Habe ich eine Struktur wie diese

struct packet
{
int seqnum;
char type[1];
float time1;
float pri;
float time2;
unsigned char data[512];
}

Ich bin empfangen von Paket in ein array

char buf[529];

Möchte ich die seqnum -, Daten-alles separat.Die folgenden festgelegten arbeiten.. Es gibt junk-Wert für mich.

struct packet *pkt;
pkt=(struct packet *)buf;
printf(" %d",pkt->seqnum)
  • versuchen Sie zu Lesen, die gute Anzahl von bytes : char buf[sizeof (struct packet)]; und mit : read (fd, buf, sizeof(struct packet));
  • Sichergestellt, dass die Anzahl der gelesenen bytes entspricht der Größe der Struktur, aber es ändert nicht die eingehenden bytes und daher nichts tut, um sicherzustellen, dass Sie haben Polsterung oder endianness, die mit der Struktur. Wenn das eingehende Byte nicht drei bytes zwischen den char type[1] und die float time1 aber die Struktur macht, dann read komplett gebrochen ist.
  • Zum Wohle der Schönheit, nicht immer geben die Please help me with the code. Satz wieder
  • Wollen Sie eine Lösung, die funktioniert in der standard-C-oder wollen Sie eine Lösung für eine konkrete Umsetzung in C? Die Umsetzung (inklusive der target-Plattform)?
  • Eric Postpischil ich bin mit diesem mit gcc-compiler für ubuntu
InformationsquelleAutor user1762571 | 2013-04-15
Schreibe einen Kommentar