我就是想把一个TMemoryStream里面的数据读到一个长整型(4个字节)的数组里面,或者一个含有各种类型数据的记录结构中,但是,读出来的数总是不对,读到byte类型的数组中就是对的。于是我想还不如直接用指针,先读到byte类型的数组,把地址赋给记录的指针。
老鱼,我知道你很厉害,帮帮忙吧!

解决方案 »

  1.   

    首先声明本人水平一般
    其次建议不要用指针delphi中的指针可不如c中的好用
    取地址符为@
      

  2.   

    你的tmemorystream中的数据是什么样的
      

  3.   

    实际上就是一些byte型的数据,是通过套接口发过来的,我接受到后,要读到自己的结构中去。
      

  4.   

    实际上就是一些byte型的数据,是通过套接口发过来的,我接受到后,要读到自己的结构中去。一边用c,一边用delphi.
      

  5.   

    请再具体描述一下你要解决的问题
    我还是看不懂你究竟要做什么呢
    比如说你要最终数据结构的类型是什么
    如何拆分memory中的数据有什么规律
    这些不知道不好帮
      

  6.   

    是这样的:
    我要接收一个来自socket的数据包,然后把它进行拆分。通过NMUDP的read,把数据读到一个TMemoryStream型的流中。然后,先读出5个字节,判断收到的是什么类型的数据,然后根据判断结果,把流中的剩余数据写到相应的数据结构中。现在,我是要把它读到一个15个元素的长整型数组中。
    我两边都用delphi试过了,结果是正确的,但是一边用的时候,如果往byte型的数组里面读,结果就是正确的,读到longword数组里面,就不行。奇怪呀!
      

  7.   

    我的意思是定义为压缩数组是否好使
    packed array[1..n] of integer
      

  8.   

    Mystruct data[100];
    Mystruct* p;
    p=&data[0];