如何通过1个字节,而不是1个单位,使指针增加(How to make a pointer incre

2019-09-03 12:47发布

我有一个结构tcp_option_t ,这是N字节。 如果我有一个指针tcp_option_t* opt ,我希望它由1递增,我无法使用opt++++opt ,因为这将通过递增sizeof(tcp_option_t)这是N

我想只有一个字节来移动该指针。 我目前的解决方案是

opt = (tcp_option_t *)((char*)opt+1);

但它是一个有点麻烦。 是否有更好的办法?

Answer 1:

我建议你创建字符的指针,并用它来横向你的结构。

char *ptr = (char*) opt;
++ptr; // will increment by one byte

当你需要重新恢复你的结构,从PTR,只是做一般的转换:

opt = (tcp_option_t *) ptr;


文章来源: How to make a pointer increment by 1 byte, not 1 unit