struct node *p;
でpが構造体のポインタ?宣言して、
p = (struct node *)malloc(sizeof(LISTEL));
でメモリ確保した時って、確保するごとに新しくpができるのかな。
意味不明だったらすみません。