0

代码 :

#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* 转换为单一列表。

问题:我无法弄清楚错误背后的原因。谁能解释一下这是什么错误?

4

1 回答 1

2

malloc 返回一个 [void] 指针,'struct singlylist' 根本不是一个指针。

我对C有点生疏,但这应该可以:

typedef struct singlylist *List;

L = (List) malloc(sizeof(*L));
于 2013-08-19T04:44:48.047 回答