這是我的問題,其中一個rcvfrom()參數是一個char *,一旦我從中獲得了數據,我想將它轉換爲結構體。但是,演員陣容不成功。我究竟做錯了什麼?是否可以將char *轉換爲結構?
這裏是我做過什麼:
struct {
int8_t seq;
int8_t ack;
bool flag;
char data[payload];
}r_pckt;
//...bunch of codes
char *buf = NULL;
buf = (char *)malloc (sizeof(char) * MTU);
memset(buf, 0, MTU);
//...
res = recvfrom(socket_fd, buf, MTU, 0,(struct sockaddr *) &cli_addr, (socklen_t *)&cli_len);
//..
r_pckt *tmp_pckt = (struct r_pckt *) &buf;
而且這是行不通的。有任何想法嗎? 謝謝。
謝謝我擺脫了錯誤。但是現在我正在做一個printf來查看我是否可以訪問內部字段。我這樣做: printf(「Incoming =%s \ n」,tmp_pckt.payload);和我有一個錯誤說:請求成員'有效載荷'的東西不是一個結構或工會 – fabricemarcelin 2011-03-30 20:23:23
我明白了。我需要做tmp_pckt->有效載荷:) – fabricemarcelin 2011-03-30 20:28:18