0

我正在尝试制作一个 Q3BSP 地图信息调试器。

我被困在纹理调试器部分,这是该部分中使用的代码:

for( i = 0; i < nTextures; i++ ) {
    printf( "Texture id %d\n", i );
    printf( "\tTexture name %s\n", Texture[i].name );
    printf( "\tTexture flags %d\n", Texture[i].flags );
    printf( "\tTexture contents %d\n", Texture[i].contents );
}

但似乎出现了这种错误:

错误 C2676:二进制“[”:“Q3BSPTexture”未定义此运算符或转换为预定义运算符可接受的类型

这是 Q3BSPTexture 结构:

typedef struct {
    char        name[64];      // Texture name. 
    int         flags;         // Surface flags.
    int         contents;      // Surface contents
} Q3BSPTexture;

我怀疑该结构没有像 char [32]那样设置限制

但我喜欢听专业人士的解决方案!

4

1 回答 1

3

您还没有向我们展示Texture.

您将Texture其视为 s 的数组Q2BSPTezture。显然它是一个单一的Q2BSPTezture对象,所以索引它没有意义。您可能只需要将它声明为一个数组,或者可能是一个指向您需要分配的数组的第一个元素的指针。

此外,错误消息暗示您正在编译 C++,而不是 C(在 C 中,该类型不可能定义任何运算符)。

于 2012-07-25T18:12:19.350 回答