【发布时间】:2015-10-10 22:48:47
【问题描述】:
我有一个源代码给出错误“表达式必须具有指针类型”
这是遗留代码,我没有完整的代码。错误出现的代码是:
(void *)&arr[0]
我不知道arr 的类型。
- 在什么情况下会出现此错误?
- 什么类型的
arr可能会导致此错误?
我知道确定问题的数据较少,但我需要用更小的代码来模拟它。任何帮助将不胜感激。
【问题讨论】:
-
真正的谜团是为什么这段代码(大概)可以同时工作。这个遗留代码来自什么上下文?也许是在某些 16 位系统中,有人将无符号整数视为指针——尽管我认为这会在编译中给出警告而不是直接错误。
-
“我不知道
arr的类型...” - 这怎么可能?如果你有源代码,为什么不看看arr是如何声明的并找出它的类型呢?这将立即说明这里发生了什么。
标签: c pointers types casting compiler-errors