【发布时间】:2011-10-27 10:20:36
【问题描述】:
好的,这对我来说太令人困惑了。我只是不知道这个作业有什么问题:
void *pa; void *pb;
char *ptemp; char *ptemp2;
ptemp = (char *)pa;
ptemp2 = (char *)pb;
谁能告诉我为什么会出现这个错误:
错误:从‘void*’到‘char*’的无效转换
【问题讨论】:
-
此代码不会产生任何错误(假设上下文正确)。这些转换没有任何无效。像这样的错误通常是为 C++ 中的
ptemp = pa赋值生成的(即没有强制转换,C++ 编译器)。您声称正在使用 C 编译器,并且在那里进行了显式转换。你的情况不会有这样的错误。请发布真实代码。 -
什么编译器?它是 C 编译器,而不是 C++ 编译器吗?照原样,您所拥有的是合法的 C 并且将通过
gcc在 C99 标准模式下没有任何问题。 -
现在这是一个奇怪的错误信息...
-
这个错误可能是因为这个赋值语句出现在全局作用域而不是函数中。
-
@Vlad Lazarenko:这可能会触发一个非常不同的错误消息。
标签: c pointers void-pointers