Код:
#include<stdio.h> #include<malloc.h> #include<conio.h> typedef struct singlylist *nodeptr; typedef struct singlylist *position; struct singlylist { int x; position next; }
.
typedef struct singlylist List; List L; int isempty(List A) { return(A.next==NULL); } void create() { L=(struct singlylist)malloc(sizeof(struct singlylist)); L.next=NULL; } main() { create(); if(isempty(L)) puts("Empty list !!!"); getch(); }
Ошибка : Невозможно разыграть из void * в одиночный список.
Вопрос: Я не могу выяснить причину ошибки. Может кто-нибудь объяснить мне, что это за ошибка?
malloc возвращает указатель [void], ‘struct singlylist’ вообще не является указателем.
Я немного заржавел в С, но это должно сработать:
typedef struct singlylist *List; L = (List) malloc(sizeof(*L));
Других решений пока нет …