2016-08-14 17 views
-1

に割り当てフィールド:構造体は、私はこの線でMyLinkedList.hファイル持っているC

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は赤色です。 私は何が間違っていますか?

答えて

3

あなたは2個のエラーがあります:

  • MyLinkedListPはすでにポインタなので、MyLinkedListP *listは、ポインタへのポインタです。
  • ポインタからstructフィールドにアクセスする場合は、.ではなく、->を使用します。ここで

はあなたのコードを修正する方法です:あなたは正しいです

MyLinkedListP list = malloc(sizeof(struct _MyLinkedList)); 
//   ^ ^
// No asterisk  No cast   
list->_listSize = 0; 
list->_firstNode = NULL; 
+0

@chqrlie、私はsizeof' 'の引数を逃しました。ありがとう! – dasblinkenlight

+0

ありがとうございました! – Vipasana

関連する問題