本人想分配一块大的内存用来存放不同类型的数据,如有的是char型,有的是short型,还有float型。现在要通过一个指针偏移来得到各个地址存放的数据。
本来想用shot *p=( short int *)VirtualAlloc来分配一块内存,再通过首地址*p和相应的偏移量来得到对应的数据。但存放的数据是不同类型的,感觉所需数据地址不大好得到。
请大家帮帮忙啊!
本来想用shot *p=( short int *)VirtualAlloc来分配一块内存,再通过首地址*p和相应的偏移量来得到对应的数据。但存放的数据是不同类型的,感觉所需数据地址不大好得到。
请大家帮帮忙啊!
把这些数据都memcpy到这个空间去
char* ptr=mem;
char a;
short b;
float c;
memcpy(ptr,&a,sizeof(char));
ptr=ptr+sizeof(char);
memcpy(ptr,&b,sizeof(short));
ptr=ptr+sizeof(float);
memcpy(ptr,&c,sizeof(float));
char q;
ptr=mem;
q=*ptr;
ptr=ptr+sizeof(char);
short w;
w=*ptr;
这样可以吧