|

楼主 |
发表于 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;
​while(p->next->data != date&& j<count)//这里出错.还未进入循环.
​{
​​p = p->next;
​ ​++j;
​}
​q = p->next;
​p->next = q->next;
​str = q->data;
​free(q);
}
我改成引用的也不行。Debug下是p->next的值是0x00000000,data跟next都是没有被赋值.
0xC0000005: Access Violation.错误信息 |
|