gpt4 book ai didi

c - 访问 char 数组中结构的空指针

转载 作者:行者123 更新时间:2023-12-04 12:22:20 25 4
gpt4 key购买 nike

我有一个缓冲区,本质上是一个 char 数组,其中填充了多个不同的结构。结构需要像这样在缓冲区中传递,因为它是我读/写到套接字的东西。这些结构是一个 header 结构,也可能是“多个有效负载”结构。

只是为了说明,它看起来像这样:

unsigned char buffer[buflen];
struct header *head;
struct payload1 *p1;
struct payload2 *p2;

etc...

现在,当我尝试填充此缓冲区或从该缓冲区中检索时,我使用了一个 void *ptr,它首先在缓冲区的位置进行初始化,然后在该位置进行初始化在标题之后,像这样:

void *ptr;

ptr = &buffer;
ptr += sizeof(header);

这实际上工作正常——即指针指向正确的内存位置,我可以很好地检索(或插入)一个新的有效负载结构,但它确实在 gcc 中生成警告。 警告:算术中使用了“void *”类型的指针

在这种情况下,我该怎么做才能避免出现此警告?

最佳答案

使用 char * 而不是 void *。问题是递增 void * 应该做什么并不明显。我希望这是一个错误而不是警告。

关于c - 访问 char 数组中结构的空指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5810530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com