我正在编写一个列表实现。他们说将其转换为双向。
void pushToStart(struct TreeStruct **start, char data) {
struct TreeStruct *tmp = malloc(sizeof(struct TreeStruct));
//(*start)->prev = tmp;
tmp->data = data;
tmp->next = (*start);
tmp->prev = NULL;
(*start) = tmp;
}
注释掉的行是我认为实施所必需的。但是,如果取消注释该行,则会出现分段错误,但如果您尝试 (**start).prev = tmp; ,那么就会出现同样的错误。在所有其他情况下,类型不匹配错误
struct TreeStruct* 树作为 start 传递;pushToStart(&tree, NULL)
怎样成为?
我认为,
那么我们有什么?我们有
这基本上不过是
那些。指向 fig where 的未初始化指针
tree,而 this fig where 被取消引用并且在那里 - 已经在 fig-fig where :) - 值被写入tmp......所以你的
tree必须是真实的,指向真正分配的内存。究竟是什么 - 取决于你的任务,在这里你知道得更好......