Я получаю ошибку сегментации в следующем коде:
void print_stack(Node * root) {
while(root != NULL) {
// print the node
root = root->next;
}
}
Принимая во внимание, что это работает:
int print_stack(Node ** root) {
Node * tmp = *root;
while(*root != NULL) {
// print the node
*root = (*root)->next;
}
*root = tmp;
}
Вопрос в том, что я делаю не так? Для обеих функций я передаю адрес указателя узла в начало списка. Я пытаюсь заставить работать первую функцию, потому что она кажется более идеальной (без выделения указателя и без постоянного изменения корневого указателя) .. спасибо.
РЕДАКТИРОВАТЬ: Я разместил код здесь: http://dpaste.com/477724/