+ =工作不正常?

时间:2012-09-14 07:26:18

标签: c

运行此代码,无论出于何种原因,都会打印出每个字母的正确值,并将第一个值添加到分数中,但是,当它添加第二个值时,出现错误并添加一个看似随机的数字。

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;
}

1 个答案:

答案 0 :(得分:6)

你的问题是:

int *lValues[26];

声明一个指针数组。

score += lValues[conv];

添加指针而不是地址(指针)上的指针