arrays - 我如何连接内存块
问题描述
我需要一个要求,我需要连接内存块我从 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;
}
我刚刚发布了一小部分代码,只是为了不要让它太长和太复杂,我需要关于这个逻辑是否正确的建议