ArrayList gralist;
gralist存放float 数值,
Plist指针单链表
void 123()
{
遍历gralist,将gralist中符合某种特征的值的地址存放在批针单链表Plist中。}void 456()
{
通过Plist中的指针,修改gralist中对应的数据}因为gralist中的数据量较大,为了避免频繁的遍历和比较运算,并且需要实时修改那些符
合某种特征的数据,所以用指针记录这些数据,并存放在Plist中。问题是,C#不像C++,
C++中gralist中的存放地址是固定的,在C#里,这些数值的地址会更换。所以Plist中的指针就会
失效。使用fixed也只能在程序中某个段执行一次,内存地址是固定的。如何解决这个问题。

解决方案 »

  1.   

    引用了
    public Node
    {
    node lnode=null;
    node rnode=null;
    ......
    }
    node link=new node();
    node.lnode=new node();
    ....
    用这鬼东西写这个有个鸟用
      

  2.   

    将gralist中符合某种特征的值的元素在数组中的索引存放在批针单链表Plist中就可以了嘛
      

  3.   

    可以不用单链表嘛,再用一个arraylist存储gralist的下标啊
      

  4.   

    回复于:2010-03-17 19:11:28
    可以不用单链表嘛,再用一个arraylist存储gralist的下标啊
    ------------------------------------------------------------之所以没用这种方法,主要是因为我的问题说明里只是一个简化的模形,实际情况要复杂一些。
    gralist存放的不是单一个数值,是一个图形对象。为了方便不再把对象的数值再做一番对比,保障实时性,所
    想用指针方法直接定位到要更改的数值上
      

  5.   

    PList定义为ArrayList存储gralist中符合特征的项的下标,和PList定义为指针单链表有什么区别吗?ArrayList也是单链表,保存的下标也可以看成gralist的地址,当然前提是gralist中各项不会增删。
      

  6.   

    回复于:2010-03-17 19:11:28
    可以不用单链表嘛,再用一个arraylist存储gralist的下标啊
    ------------------------------------------------------------
    之所以没用这种方法,主要是因为我的问题说明里只是一个简化的模形,实际情况要复杂一些。
    gralist存放的不是单一个数值,是一个图形对象。为了方便不再把对象的数值再做一番对比,保障实时性,所
    想用指针方法直接定位到要更改的数值上