首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >出现错误:中的operator[]没有匹配项

出现错误:中的operator[]没有匹配项
EN

Stack Overflow用户
提问于 2013-05-03 18:49:40
回答 1查看 166关注 0票数 0

如上所述,我得到了一个错误:在mHbbtSMFnPtrsmCurrHbbtvState(hbbtvSMEvents,hbbtvSMEvntsParam)中没有匹配到operator[];

代码语言:javascript
复制
typedef int (*HBBTVSMFnPtr)(int hbbtvSMEvent, HBBTVSMEvntParam smEvntParam );
static int HBBTVSMErrorHandler(int hbbtvSMEvent, HBBTVSMEvntParam smEvntParam);

声明:

代码语言:javascript
复制
static HBBTVSMFnPtr mHbbtSMFnPtrs[HBBTV_SM_STATE_MAXSTATES][HBBTV_SM_EVNT_MAXEVNTS];
static int mCurrHbbtvState = HBBTV_SM_STATE_TURNEDOFF; 
 typedef struct
 {
char* param;
int   paramLength;
}HBBTVSMEvntParam;

这是一个任务:

代码语言:javascript
复制
mHbbtSMFnPtrs[loopVar1][loopVar2] = HBBTVSMErrorHandler;

它是这样命名的:

代码语言:javascript
复制
int a = mHbbtSMFnPtrs[mCurrHbbtvState][hbbtvSMEvntsParam](hbbtvSMEvents, hbbtvSMEvntsParam);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-03 19:00:41

在看不到变量声明的情况下,最有可能的问题是:

  • mHbbtSMFnPtrs不是函数指针的二维数组(或类似的容器),或者
  • mCurrHbbtvStatehbbtvSMEvntsParam不是整数或无作用域的枚举类型,因此不能用作数组索引。

如果你没有从赋值行得到任何错误,那么第二个错误更有可能发生。

如果您可以发布这些声明,那么我们就可以看到哪一个是这种情况。此外,您应该考虑使用易读的名称-这将使类似的问题更容易发现。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16357147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档