【问题标题】:Getting errors with std::copy in visual express 2010在 Visual Express 2010 中出现 std::copy 错误
【发布时间】:2013-06-07 17:26:15
【问题描述】:

我收到错误: C2036:'void *':未知大小 C2100:非法间接 C2440: '=' : 无法从 'CUSTOMVERTEX' 转换为 'void *'

 VOID* pVertices;
if( FAILED( g_pVB->Lock( 0, sizeof( Vertices ), ( void** )&pVertices, 0 ) ) )
    return E_FAIL;
std::copy( Vertices, Vertices, pVertices );
g_pVB->Unlock();

return S_OK;

不知道怎么回事

【问题讨论】:

  • vertices 是一个数组,CUSTOMVERTEX 是一个结构体
  • @user3606:该评论不清楚。 Vertices 是一个还是一个变量?如果是变量,它的类型是什么?

标签: c++


【解决方案1】:

对于std::copy,您需要三个迭代器作为参数。在您的调用中,未分离的顶点可能是合适的,尽管它是一个空范围,因此您可以剪切副本。

最后一个必须是输出迭代器,与输入兼容。 void* 绝对是错误的,因为你不能增加它,或者为了赋值目的取消引用它。

【讨论】:

    猜你喜欢
    • 2013-10-09
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-04
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    相关资源
    最近更新 更多