写了个简单的画图程序 却没想到这一段代码可以占用最高6个多G的内存,而且还没算出来
        temp1 = outside.First;    //outside是LinkedList<Point>型,temp1是他所对的链表节点型,是临时变量
        for(int n=1;n<=outside.Count;n++)
        {
            if(n<outside.Count)
            {
              for(int i=0;i<number_point;i++)
              {//如果在线外(圈外)
                  if (true == IsOnLineRight(temp1.Value.X, temp1.Value.Y,
                      temp1.Next.Value.X, temp1.Next.Value.Y, p[i, 0], p[i, 1]))
                  {
                      Point r = new Point(p[i, 0], p[i, 1]);
                      LinkedListNode<Point> s = new LinkedListNode<Point>(r);
                         outside.AddAfter(temp1,s);
                  }
              }
              temp1 = temp1.Next;
            }
            else
            {//如果是最后一条线,即最后一点到第一点
                for (int i = 0; i < number_point; i++)
                {//如果在线外(圈外)
                    if (true == IsOnLineRight(temp1.Value.X, temp1.Value.Y,
                        outside.First.Value.X, outside.First.Value.Y, p[i, 0], p[i, 1]))
                        {
                            Point r = new Point(p[i, 0], p[i, 1]);
                            LinkedListNode<Point> s = new LinkedListNode<Point>(r);
                            outside.AddAfter(temp1, s);
                        }

                }
            }
        }

1个回答

如果不是数据本来就这么大的话,多半是申请新链表死循环了

 new LinkedListNode<Point>(r);
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问