我有一个tcp_option_t
结构,N
个字节。如果我有一个指针tcp_option_t* opt
,我希望它增加1,我就不能使用opt++
或++opt
,因为这会增加sizeof(tcp_option_t)
,这是N
。
我想将此指针仅移动1个字节。我目前的解决方案是
opt = (tcp_option_t *)((char*)opt+1);
但有点麻烦。有没有更好的方法?
答案 0 :(得分:12)
我建议你创建一个char指针并用它来横向你的结构。
char *ptr = (char*) opt;
++ptr; // will increment by one byte
当您需要从ptr再次恢复结构时,只需执行常规的转换:
opt = (tcp_option_t *) ptr;