2012-09-14 31 views
0

運行此代碼,無論出於何種原因,都會爲每個字母打印出正確的值,並將第一個值添加到得分中,但是,當它添加第二個值時,會出現錯誤,並且會添加一個看似隨機的數字。+ =無法正常工作?

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

意向難道'wordCur'不是一個字符數組指針,但單個字符? –

+1

您可以給出示例數據並運行您的預期結果 – BugFinder

+1

我想參數應該是char * wordCur? –

回答

6

你的問題是:

int *lValues[26]; 

聲明指針數組。

score += lValues[conv]; 

添加指針,而不是什麼將地址(指針對象)

+0

好的,謝謝,工作 – TLET