私は再帰を持ってstruct
います:
typedef struct dict dict;
struct dict {
dict *children[M];
list *words[M];
};
この方法で初期化:
dict *d = malloc(sizeof(dict));
bzero(d, sizeof(dict));
bzero()
ここで正確に何をしているのかmalloc()
、子供のために再帰的にどのようにできるのかを知りたいです。
編集:これは私ができるようにしたい方法malloc()
です:children
words
void dict_insert(dict *d, char *signature, unsigned int current_letter, char *w) {
int occur;
occur = (int) signature[current_letter];
if (current_letter == LAST_LETTER) {
printf("word found : %s!\n",w);
list_print(d->words[occur]);
char *new;
new = malloc(strlen(w) + 1);
strcpy(new, w);
list_append(d->words[occur],new);
list_print(d->words[occur]);
}
else {
d = d->children[occur];
dict_insert(d,signature,current_letter+1,w);
}
}