【发布时间】:2014-08-19 19:08:20
【问题描述】:
我正在尝试使用 void * 进行一些基本的指针运算。我的实际代码通过使用 sizeof 然后相乘来计算偏移量。以下是单独显示问题实例的示例代码。
void * p;
p = 0;
p = p + 1;
我在 C(不是 C++)中使用 MSVC 编译器。
错误是:
expression must be a pointer to a complete object type
我不明白这个错误想说什么。这里没有对象或结构。
【问题讨论】:
-
并非如此。我先读了。
-
void没有大小,因此不允许在void *上进行指针运算。 -
听起来可能就是这样。它说添加到 void * 是 GCC 扩展。 (很奇怪,因为它在 MSVC 编译器的 C++ 模式下工作)stackoverflow.com/questions/20154575/error-void-unknown-size
-
我很难找到一个副本,但必须有一个,现在请参阅Declaring type of pointers?。
标签: c