gpt4 book ai didi

c - 使用 void 指针进行指针算术

转载 作者:行者123 更新时间:2023-11-30 15:31:25 35 4
gpt4 key购买 nike

我想知道是否有更好的方法,而不是将 void 指针转换为 uint8_t,然后根据偏移量进行算术,然后将其转换为 uint32_t,然后取消引用它在该精确偏移处获取 4 字节值。

void * foo = malloc(1024);
uint32_t myVar;

for(int i = 0; i < 10; i++)
{
myVar = *((uint32_t*)((uint8_t *) foo + nOffset));
nOffset += 100;
}

最佳答案

您最好只停留在指针算术的一个“域”内。

你应该这样做 uint32_t * foo = malloc(1024);

然后或者

myVar = foo + nOffset / sizeof(*foo);
nOffset += 100;

myVar = foo + nOffset;
nOffset += 100 / sizeof(*foo);

每一步前进 100 个字节。

关于c - 使用 void 指针进行指针算术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24821055/

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