运行此代码,无论出于何种原因,都会打印出每个字母的正确值,并将第一个值添加到分数中,但是,当它添加第二个值时,出现错误并添加一个看似随机的数字。
values()是一个函数,它为数组lValues中的每个整数分配一个设置值,用于确定wordCur的总值,即字符串。
int calcScore(char wordCur) {
int score = 0;
int conv;
int wordLen = strlen(wordCur);
int i;
int *lValues[26];
values(lValues);
for (i = 0; i < wordLen; i++){
conv = (int)wordCur[i] - 65;
score += lValues[conv];
printf("%d\n", lValues[conv]);
}
printf("\n%d\n", score);
return score;
}
答案 0 :(得分:6)
你的问题是:
int *lValues[26];
声明一个指针数组。
score += lValues[conv];
添加指针而不是地址(指针)上的指针