c++中如何申请一个32位的物理空间,不属于任何数据类型,希望它既可以盛放32整型数据,也可以存放32位浮点型数据
void *
malloc申请出来的是void*的空间,是按照字节走的,你可以将4个字节当做一个数据段来读写,将你的浮点数或者整形转成二进制,然后按照一定的规则写入4个字节的空间,应该可以实现
char或者void都可以。因为char本就是1个字节,4个就是32位。
然后强转就可以实现。
以char为例
#include <iostream>
using namespace std;
int main()
{
char* p = new char[4];
int *ip = (int *)p;
*ip = 100;
cout<<*ip<<endl;
char* tmp = (char*)ip;
float *fp = (float *)tmp;
*fp = 100.012;
cout<<*fp<<endl;
delete []p;
return 0;
}
按照你的描述,你应该使用 union (联合),是没有学过还是忘了?