数据结构 访问冲突 求解

C++创建循环链表的遍历出现 引发了异常: 读取访问权限冲突。

#include
using namespace std;
struct Lnode
{
int data;
struct Lnode* next;
};
void CreatList2(Lnode* L, Lnode* p, Lnode* r, int n)
{
int i;
L->next = NULL;
r = L;
cout << "请输入对应元素" << endl;
for (i = 0; i < n; i++)
{
p = new Lnode;
cin >> p->data;
p->next = NULL;
r->next = p;
r = p;
}
}
int main()
{
Lnode* L, * p, * r, * g;
g = new Lnode;
L = new Lnode;
p = new Lnode;
r = new Lnode;
cout << "输入元素个数" << endl;
int a;
cin >> a;
CreatList2(L, p, r, a);
L = p->next;
int i = 0;
g = L->next;
while (g)
{
i++;
g = g->next;
}
cout << "元素个数为" << i << endl;

return 0;

}

img

你是不是越界访问了。