次のように私は私がtmp->next->next
にアクセスすることができない理由このようにリンクされたリストのポインタにアクセスできないのはなぜですか?
typedef struct slinkedlist {
int data;
struct slinedlist *next;
} node;
は、私は、私のコードで一時ポインタnode * tmp
を持っている、ノードを宣言しました。
/*コードを追加しました*/
typedef struct slinkedlist {
int data;
struct slinedlist *next;
} node;
node *start;
/* Assume I have 5 nodes in a list */
void ex(void)
{
node *tmp;
tmp = start->next->next; /* This will be error in C , explain me, why? */
/* But this works fine */
tmp = start->next;
tmp = tmp->next;
}
私は次のスタート - >ネクスト>にアクセスした場合、私はエラーになりますなぜですか?
試してみるとどうなりますか?エラーメッセージが表示されますか?何? –
この方法では、ヌルポインタ逆参照の危険があります。 – werediver
構造体用ではなくポインタのメモリを割り当てました –