首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何初始化包含指向指针的指针的结构

如何初始化包含指向指针的指针的结构
EN

Stack Overflow用户
提问于 2011-02-08 19:56:33
回答 3查看 2.5K关注 0票数 1

下面是结构,我想在C中创建这个结构的数组并初始化,但与如何初始化char **inputchar **output混淆。

代码语言:javascript
复制
typedef struct _test_data_vector {
    char *api;
    char **input;
    char **output;
}vector_test_data;

下面是我尝试过的。

代码语言:javascript
复制
typedef struct _test_data_vector {
    char *api;
    char **input;
    char **output;
}vector_test_data;

vector_test_data data[] = {
    {
        "vector_push_back",
        {"1","2","3","4","5","6","7","8","9","10"},
        {"1","2","3","4","5","6","7","8","9","10"}
    }
};
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-02-08 20:15:01

非常接近,只需通过指定类型(从C99开始)

这是我在没有任何警告的情况下测试的内容:

代码语言:javascript
复制
typedef struct _test_data_vector {
    char *api;
    char **input;
    char **output;
}vector_test_data;

vector_test_data data[] = {
    {
        "vector_push_back",
        (char*[]){"1","2","3","4","5","6","7","8","9","10"},
        (char*[]){"1","2","3","4","5","6","7","8","9","10"}
    }
};

printf("TEST: %s", data[0].input[2]);

Otput:测试:3

票数 1
EN

Stack Overflow用户

发布于 2011-02-08 20:11:05

具体一点,通常当你必须初始化一个指向一个指针的指针时,你可以这样做:

代码语言:javascript
复制
char * charPointer;//this is the char you want the input to point at;
*input = charPointer;

我不得不在项目上使用指针,但如果有什么方法可以避免这一点,那就更容易了

票数 0
EN

Stack Overflow用户

发布于 2011-02-08 20:11:52

默认情况下,api、input和output将初始化为NULL。您可以直接初始化api,但必须在编译时通过定义数组或在运行时(可能通过malloc )分配输入和输出。你真的应该提供更多关于你正在尝试做什么的信息,以便获得更有帮助的答案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4932699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档