Сбой приведения C: не может быть приведен из void * к структуре C

Код:

#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 * в одиночный список.

Вопрос:
Я не могу выяснить причину ошибки. Может кто-нибудь объяснить мне, что это за ошибка?

0

Решение

malloc возвращает указатель [void], ‘struct singlylist’ вообще не является указателем.

Я немного заржавел в С, но это должно сработать:

typedef struct singlylist *List;

L = (List) malloc(sizeof(*L));
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]