gpt4 book ai didi

c - 无效指针转换错误?

转载 作者:太空宇宙 更新时间:2023-11-04 06:29:02 25 4
gpt4 key购买 nike

我在我的 C 程序中使用一个 void 指针。我有一个 if 语句强制将数据集打印到 32 字节边界。

** 我应该注意,我正在尝试修改 mem 指针的地址以将其移动到边界 **

我收到以下错误:

Operation between types "void*" and "int" is not allowed

我的代码如下:

if(((int)mem % 32) != 0)   
mem -= ((int)mem % 32);

其中 mem 定义为:

void *mem

最佳答案

你不能用 void * 做指针运算:

mem -= ((int)mem % 32);

未定义,因为 *mem 没有“固有大小”。

可能有编译器(你好,gcc!)允许将其作为扩展,但一般来说,您只能对具有大小的类型的指针进行指针运算,例如char *, int *

关于c - 无效指针转换错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22756652/

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