在我的程序中,我发现我的这段代码:memcpy(me->m_pLastPacket->m_data,data,sizeof(data));一开始运行是正常的,但运行过几个小时后,这段代码就会出现如下的错误信息:Unhanced Exception at 0x3af9sc in myFTP.exe:0X000000005:写入位置“0X8080808084”时发生访问冲突。其中,m_data和data都是长度为521B的BYTE类型数组。
调试欢乐多
环形链表没有用锁,但使用了一个计数器和指针重叠判断来保证这两个线程不会同时处理同一个链表节点,以防出现读写冲突。写数据是采用覆盖的方式,而不是删除或插入。只有退出程序时才会释放m_pLastPacket指针。以下这段代码:memcpy(me->m_pLastPacket->m_data,data,sizeof(data));一开始运行是正常的,但运行过几个小时后(不定时间),这段代码就会出现如下的错误信息:Unhanced Exception at 0x3af9sc in myFTP.exe:0X000000005:写入位置“0X8080808084”时发生访问冲突。其中,m_data和data都是长度为521B的BYTE类型数组,而两个线程间共享的链表长度为10个Packet(Packet是我自定义的结构体,处理的基本单位就是Packet)
请问大家有什么建议?