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

标签 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);
    }
}

最佳答案

包含 exportenviron 的文件没有看到您的结构的实际定义:相反,它只知道 struct vars 存在,但不知道其中的内容。例如,也许您有一个头文件 vars.h 包含在 .c 文件中,其中包含 exportenviron,而 vars.h 仅包含结构变量;

关于c - 在 C 中取消引用指向不完整类型错误的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25902667/

相关文章:

c++ - 错误 = 0x801F0020 FilterReplyMessage 'error_flt_no_waiter_for_reply' 微过滤器驱动程序

c - 如何释放c中指针的内存

C 指针帮助 : Array/pointer equivalence

c - 如何在不停止 C 程序的情况下按下最后一个键?

快速排序不能变成稳定排序吗?

c - 显示 double 数组

c - 用于目录遍历的哪些 C 头文件在 Linux 中是进程安全的?

c++ - 从三个 boolean 值创建一个整数作为 C++ 中的位

c - fork() 返回一个大于 0 的数字

c++ - 识别 C 和 C++ 函数之间逻辑相似性的工具