我有一个带有以下行的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是红色的。
我究竟做错了什么?
最佳答案
您有两个错误:MyLinkedListP
已经是一个指针,所以MyLinkedListP *list
是一个指针。
您使用->
而不是.
从指针访问struct
字段。
这是修复代码的方法:
MyLinkedListP list = malloc(sizeof(struct _MyLinkedList));
// ^ ^
// No asterisk No cast
list->_listSize = 0;
list->_firstNode = NULL;
关于c - C中的结构字段分配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38941754/