鱼C论坛

 找回密码
 立即注册
查看: 2012|回复: 4

C++外接循环创建单链表

[复制链接]
发表于 2014-5-25 21:45:37 | 显示全部楼层 |阅读模式
10鱼币
void LinkList::Init(LNode *L)
{
        L = new LNode;
        L->next =NULL;
}
void LinkList::LNodeCreat(LNode *L,int date)
{
        LNode *p;
        p = new LNode;
        p->data = date;
        L->next =p;
        L = p;
        L->next =NULL;
}
这两个函数是在下面这个循环内调用
        while(!(fins->eof()))
        {
                getline(*fins,str1);
                n1 = atoi(str1.c_str());
                List.LNodeCreat(L,n1);
                count++;
        }
一开始就初始化了,为什么调试的时候显示的是红色字体错误,
错误信息为 :   0xC0000005: Access Violation.
求帮忙解决问题啊!

最佳答案

查看完整内容

没有全代码自己不能调试,不知道具体原因。。。不过问一下while循环里的 List.LNodeCreat(L,n1);这个L是什么数据类型,我感觉是不是应该写成 List.LNodeCreat(&L,n1);取地址符。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-5-25 21:45:38 | 显示全部楼层
没有全代码自己不能调试,不知道具体原因。。。不过问一下while循环里的 List.LNodeCreat(L,n1);这个L是什么数据类型,我感觉是不是应该写成 List.LNodeCreat(&L,n1);取地址符。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-5-26 14:29:47 | 显示全部楼层
我修改了方法,先把str中的值赋给一个数组,然后在void LinkList::LNodeCreat(LNode *L,int date[],int count)内循环赋值。
还有一个问题就是我在这个函数里面调用单链表
void Diary::Show_Diary(string Account)//日记日期列表
{
    ​。。。。。
    ​List.LNodeCreat(L,n,count);//n为数组
    ​List.SortList(L,count);    ​
    ​List.PrintList(L);
    ​List.ClearList(L);
    ​。。。。。
}
在这个函数里调用删除方法,但是错了。
void Diary::Delete_Diary(string FileName)
{
    ​。。。。。
    ​List.DeleteDate(L,count_diary,n);//n为要删除的数据
    ​。。。。。
}
另外定义了全局变量 LNode *L = NULL;
void LinkList::DeleteDate(LNode * L,int count,int date)
{
    ​int j = 1;
    ​LNode *p,*q;
    i​nt str;
    ​p = L;
    &#8203;while(p->next->data != date&& j<count)//这里出错.还未进入循环.
    &#8203;{
        &#8203;&#8203;p = p->next;
       &#8203; &#8203;++j;
    &#8203;}
    &#8203;q = p->next;
    &#8203;p->next = q->next;
    &#8203;str = q->data;
    &#8203;free(q);
}
我改成引用的也不行。Debug下是p->next的值是0x00000000,data跟next都是没有被赋值.
0xC0000005: Access Violation.错误信息
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-5-26 18:48:56 | 显示全部楼层
指针赋值错了,你自己好好检查一下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-5-27 16:34:55 | 显示全部楼层

我现在又改方法了,而且糊里糊涂改好了- -。。。。嘿嘿 ~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-27 12:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表