在C中取消引用指向不完整类型错误的指针

时间:2014-09-18 01:10:13

标签: c

我想知道为什么我会这样做,

错误:

error: dereferencing pointer to incomplete type
   strncpy(variables->part1[i], environ[i], placement);

主要代码:

struct vars {
  char **part1;
  char **part2;
} ;

static struct vars *variables;

exportenviron(&variables);

功能代码:

void exportenviron(struct vars* variables)
{
    int i;
    char *pch;

    int placement;

    for(i=0; environ[i]; i++) {
        pch = strchr(environ[i], '=');
        placement = pch-environ[i]+1;
        strncpy(variables->part1[i], environ[i], placement);
    }
}

1 个答案:

答案 0 :(得分:2)

包含exportenviron的文件并未查看结构的实际定义:相反,它只知道struct vars存在,而不知道其中的内容。例如,您的.c文件中包含vars.h可能包含exportenviron,而vars.h仅包含struct vars;