首页 > 解决方案 > 我如何连接内存块

问题描述

我需要一个要求,我需要连接内存块我从 UDP 发送我的数据作为 100 字节的块,我已经验证了传输,但是当我发送一个 800 字节的数组作为 8 个块,并将它们连接到一个数组我无法检索数据

我发送一个包含 200 个元素的 int 数组,达到 800 个字节,并且第一个元素正在递增以检查数据

我的简单逻辑是这样的

        // allocate memory for main memory block
        void* rcv_Data = malloc(800);

       // allocate memory for chunk memory block 
        void* tempdata = malloc(100);

       // read all 8 chunks 
       for (int ndx=0; ndx<8;ndx++)
       {
        Read_packet(skt,tempdata,100);
        memmove((rcv_Data +(ndx*100)) ,tempdata, 100);
       }

        
        printf("data  is %d\n",((int*)rcv_Data )[0]);

但我打印的数据一直为 0,但实际数据是一个递增的数字

我的读取功能如下

    int Read_packet(int CSPL_Socket, void *buf,int datalen)
{
    int numb_bytes=0;
    numb_bytes=read(CSPL_Socket, buf, datalen);
                        if(numb_bytes<0)
                        {
                            CSPL_SOK_ERROR(-6);
                            close(CSPL_Socket);
                            exit(1);
                            return -1;
                        }
                        else
                        {
                            //printf("Count %d\n",numb_bytes);
                        }
    return 0;
}

我刚刚发布了一小部分代码,只是为了不要让它太长和太复杂,我需要关于这个逻辑是否正确的建议

标签: arrayscmemory

解决方案


推荐阅读