由于某些原因,我无法访问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++;

最佳答案

使用:

procNames->count++;

procNames是指针,因此您需要使用它或长卷:
(*procNames).count++;

只有当LHS上的值是一个结构时,才能使用.运算符。当有指向结构的指针时,必须使用->或取消对指针的引用,然后应用.运算符,该运算符需要括号和*,因为.绑定得比一元(取消引用)更紧。

10-08 04:08