【发布时间】:2015-05-27 11:54:59
【问题描述】:
我想将我的结构声明为递归结构。所以到目前为止我所做的看起来是这样的:
typedef struct {
char *string;
struct my_struct **children; //I want a list of children, therefore pointer to pointer
int child_num;
} my_struct;
但是当我尝试像这样初始化它时:
my_struct *alig;
alig = malloc(sizeof(my_struct)*1);
alig->child_num = 5;
alig->string = malloc(sizeof(char)*9);
strncpy(alig->string, "AAACGTCA", 8);
alig->children = malloc(sizeof(my_struct*)*alig->child_num);
int j;
for (j = 0; j < alig->child_num; j++) {
alig->children[j] = malloc(sizeof(my_struct)*1);
alig->children[j]->string = malloc(sizeof(char)*9); // *********error ********
}
我得到错误: "./structurs.h:27:13: 注意:'struct my_struct' 的前向声明"
以及标记行处的此错误: main.c:56:22:错误:“struct my_struct”类型的定义不完整
现在有人知道我的错误在哪里吗?
【问题讨论】:
-
(除了 typedef)你对
strncpy()的使用是错误的。 (使用 strncpy()总是错误)