我有一行MyLinkedList.h文件:
typedef struct _MyLinkedList *MyLinkedListP;
在我的.c文件中,我试试这个并不起作用。
#include "MyLinkedList.h"
typedef struct _Node
{
int _val;
struct _Node* next;
} Node;
typedef struct _MyLinkedList
{
int _listSize;
Node* _firstNode;
};
MyLinkedListP createList()
{
MyLinkedListP *list = (MyLinkedListP*)malloc(sizeof(MyLinkedListP));
list._listSize = 0;
list._firstNode = NULL;
}
._ listSize和._firstNode是红色的。 我做错了什么?
答案 0 :(得分:3)
您有两个错误:
MyLinkedListP
已经是指针,因此MyLinkedListP *list
是指向指针的指针。->
而不是.
来从指针访问struct
字段。以下是修复代码的方法:
MyLinkedListP list = malloc(sizeof(struct _MyLinkedList));
// ^ ^
// No asterisk No cast
list->_listSize = 0;
list->_firstNode = NULL;