用于函数时结构上的二进制“[”错误

时间:2012-07-25 17:55:13

标签: c++

我正在尝试制作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]

但我喜欢听专业人士的解答!

1 个答案:

答案 0 :(得分:3)

您尚未向我们展示Texture的定义。

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

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