下面是结构,我想在C中创建这个结构的数组并初始化,但与如何初始化char **input和char **output混淆。
typedef struct _test_data_vector {
char *api;
char **input;
char **output;
}vector_test_data;下面是我尝试过的。
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"}
}
};发布于 2011-02-08 20:15:01
非常接近,只需通过指定类型(从C99开始)
这是我在没有任何警告的情况下测试的内容:
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
发布于 2011-02-08 20:11:05
具体一点,通常当你必须初始化一个指向一个指针的指针时,你可以这样做:
char * charPointer;//this is the char you want the input to point at;
*input = charPointer;我不得不在项目上使用指针,但如果有什么方法可以避免这一点,那就更容易了
发布于 2011-02-08 20:11:52
默认情况下,api、input和output将初始化为NULL。您可以直接初始化api,但必须在编译时通过定义数组或在运行时(可能通过malloc )分配输入和输出。你真的应该提供更多关于你正在尝试做什么的信息,以便获得更有帮助的答案。
https://stackoverflow.com/questions/4932699
复制相似问题