プログラム歴は半年くらいです。
ポインタや構造体、引数などが苦手で、克服するために
練習しているんですが、よくわからないエラーにひっかかり、
困っています。
0を入力するまでリストに保管し、出力するという感じです。
そこで、LINUXの端末で以下のプログラムをコンパイルしたところ
16行目で「ポインタからキャスト無しに整数を作成している」
17、34、38行目で「ポインタと整数との比較を行なっている」
と出ました。
どちらもどういう意味のエラーかわからず悩んでいます。
#include<stdio.h>
#include<stdlib.h>
struct node{
int no;
struct node *next;
struct node *prev;
}header;
struct node head = &header;
list_maker(void){
int n;
struct node *list;
scanf("%d",&n);
n = (struct node*)malloc(sizeof(struct node));
if(n == NULL){
printf("ERROR-1\n");
return 0;
}
list->no = n;
list->next = head.next;
head.next->prev = list;
list->prev = &head; /*これ何で必要なのか*/
}
int main(void){
int a=1;
struct node *list;
while(a != 0) list->no = list_maker();
while(list->no != NULL){
printf("%d",list->no);
list = list->next;
}
while(list->no != NULL){
printf("%d",list->no);
list = list->prev;
}
return 0;
}