0

何らかの理由でこのコードを実行すると、各文字の正しい値が出力され、スコアに最初の値が追加されますが、2 番目の値を追加すると、何かがうまくいかず、一見乱数が追加されます。

values() は、文字列である wordCur の合計値を決定するために使用される配列 lValues 内の各整数に設定値を割り当てる関数です。

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

1 に答える 1

6

あなたの問題は:

int *lValues[26];

ポインターの配列を宣言します。

score += lValues[conv];

アドレスにあるものではなく、ポインターを追加します (pointee)

于 2012-09-14T07:29:36.923 に答える