При компиляции возникает ошибка, но я не уверен, что. Я пережил все это несколько раз и не могу понять, почему.Дробные двоичные сбой при компиляции
Кроме того, есть ли какие-либо другие вещи, которые я должен сделать, чтобы улучшить этот кусок кода вообще?
#include <stdlib.h>
#include <stdio.h>
//create structure to hold node
typedef struct node
{
int data;
struct node *left; //lower no./points to left node
struct node *right; //higher no./points to right node
} node;
void insert(node **rt, int val) //insertion function
{
node *tmp;
if(*rt == NULL){
tmp = (node *) malloc(sizeof(node)); //allocates memory for node
if (tmp == NULL)
{
printf(stderr, "Unable to allocate node\n");
exit(1);
}
tmp->data = val;
*rt = tmp;
}
else{
if(val > (*rt)->data)
insert(&(*rt)->right, val);
else
insert(&(*rt)->left, val);
}
}
void print_node(node *head) //starts with head/first node until NULL
{
if(head == NULL)
return;
if(head->left != NULL)
print_node(head->left);
printf("data = %d\n", head->data);
if(head->right != NULL)
print_node(head->right);
}
int main(int argc, char *argv[])
{
int value[6] = {20,10,5,17,30,21}; //values put into array
int i; //i count
node *head = NULL;
for(i = 0; i < 6; i++) //loop array
{
insert(&head, value[i]);
}
print_node(head); //recursive search
return 0;
}
При компиляции или при запуске? Катастрофа была бы странной. Если при запуске вы должны отлаживать, чтобы сузить проблему. – Dukeling