struct str_node{
int data;
int *next;
}*head;
typedef struct str_node node;
void create_list(int n){
node *boh,*tmp;
int num,i;
head = (node*)malloc(sizeof(node));
if(head == NULL){
printf("Memory can not be allocated.");
}
else{
printf("Insert value for node 1: ");
scanf("%d",&num);
head->data = num;
head->next = NULL;
tmp = head;
for(i=2;i<=n;i++){
boh = (node*)malloc(sizeof(node));
if(boh ==NULL){
printf("Memory can not be allocated.");
break;
}
else{
printf("Insert value for node %d",i);
scanf("%d",&num);
boh->data = num;
boh->next = NULL;
tmp->next = boh; //<--Incompatible pointer types assigning to 'int *' from 'node *' (aka 'struct str_node *')
tmp = tmp->next; //<-- Incompatible pointer types assigning to 'node *' (aka 'struct str_node *') from 'int *'
}
}
}
}
Код работает хорошо, но я не понимаю этих двух ошибок. Можете ли вы объяснить это мне? Я не думаю, что есть какой-либо int, я работаю только с struct node, я не прав?