2012-03-05 53 views
0

由于某种原因,我无法访问procNames.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是一个指针,所以你需要使用或啰嗦:

(*procNames).count++; 

您只能使用.操作当值在LHS上是一个结构。如果有指向结构的指针,则必须使用->或取消引用指针,然后应用.运算符,该运算符需要圆括号以及*,因为.绑定比一元(取消引用)*更紧密。

相关问题