ポインター演算を使用してパケット構造体からいくつかのフィールドを取得したいのですが、以下のコードの何が問題になっていますか?
最初の条件では、パケットの先頭から 4 バイト (2 つの短いフィールド) に移動すると tLow を取得すると思います。しかし、期待値が得られません。私の考えは間違っていますか?
struct packet{
short len;
short field;
int tLow;
int tHigh;
void *data;
}
int main()
{
struct packet pack;
struct packet *pck;
pack.len=3;
pack.field=34;
pack.tLow=712;
pack.tHigh = 12903;
pack.data = "message";
pck = &pack;
int *timeLow = (int * )pck + 4; // i want to get tLow
printf("Time Low :%d\n",*time);
char *msg = (char *)pck + 12 ;// want data
printf("Message :%s\n",msg);
return 0;
}