2012-03-05 8 views
0

何らかの原因で、procNames.countにアクセスできません。カウンターを増やすだけでいいです。なぜ私は分からない。誰もが問題を見ていますか?構造体のコピーへのアクセス。私はエラーが発生します:構造体または共用体でないメンバーの 'count'メンバーのリクエスト

struct config_line { 
    char name[MAX_WORD]; 
    int time; 
}; 

struct config { 
    struct config_line *lines; 
    int count; 
}; 

//global variable 
struct config configData; 

// allocate memory to procNames 
procNames = malloc(sizeof(struct config)); 
if (procNames == NULL) { 
    printf("problem allocating memory, for procNames. int procnanny(void)"); 
    return 0;  
} 
//local variable 
struct config *procNames; 

procNames = &configData; 
// the problem 
procNames.count++; 

答えて

3

用途:

(*procNames).count++; 

あなたはときにのみ値.演算子を使用することができます:あなたはそれを使用する必要があるか、長いったらしいので

procNames->count++; 

procNamesは、ポインタでありますLHS上の構造体です。構造体へのポインタがある場合は、.が単項(逆参照)*よりも厳密にバインドするため、->を使用するか、ポインタの参照を解除して.演算子を適用する必要があり、かっこと*が必要です。

1

それは

procNames->count++ 
であるべき
関連する問題