C++编译错误:不定义该运算符或到预定义运算符可接收的类型的转换

#definem40typedefstruct{stringKeyName;//关键字名字intcount;//频度}HashTable;HashTableHT[m];i... #define m 40
typedef struct
{
string KeyName;//关键字名字
int count;//频度
}HashTable;
HashTable HT[m];

int HashCount(char* ch)//计算散列函数值
{
int count;
int lz=7;
int l=sizeof(ch);
for(int i=0;i<l;i++)
{
count+=(int)ch[i];
}
count=count%lz;
return count;

}

void SearchHashTable(HashTable HT,char* ch)
{
int mm;
mm=sizeof(HT);
int H=HashCount(ch);
if(HT[H].KeyName==NULL) //错误出在这里!!!!!!error C2676: 二进制“[”: “HashTable”不定义该运算符或到预定义运算符可接收的类型的转换

{
HashTable htt;
strncpy(HT[H].KeyName,ch,sizeof(ch));
HT[H].count++;
return;
}
}

error C2676: 二进制“[”: “HashTable”不定义该运算符或到预定义运算符可接收的类型的转换

.KeyName”的左边必须有类/结构/联合
展开
 我来答
h_l_q
2011-05-18 · TA获得超过1262个赞
知道小有建树答主
回答量:686
采纳率:0%
帮助的人:599万
展开全部
void SearchHashTable(HashTable HT,char* ch)
看到没,这个HT是一个HashTable,不是数组,用不了[]
我是百人敌
2011-05-18 · TA获得超过358个赞
知道小有建树答主
回答量:310
采纳率:0%
帮助的人:268万
展开全部
没定义[]操作符
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式