我正在用c ++编写一个类,它支持任何类型的变量来帮助我完成未来的项目.问题是,当我尝试为void*变量赋值时,我得到错误:void*不是指向对象的指针类型.这是代码:
int main (void) {
void* a;
int x;
a = malloc(sizeof(int));
x = 120;
((int)(*a)) = x;
printf("%d",((int)*a));
free(a);
system("pause");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我看到它就像我试图在为a保留的内存块中分配x的值.我希望存储在x中的值存储在a的内存块中.可以帮我吗?
你可能想做:
void* a;
int x;
a = malloc(sizeof(int));
x = 120;
*(int*)a = x;
printf("%d", * (int*)a);
free(a);
Run Code Online (Sandbox Code Playgroud)
首先,您必须转换a为适当的指针类型,然后取消引用它。其次,使用模板——这就是它们的用途。第三,malloc和free是baaaad,好吗?不。如果您认为这是好的代码,那么您需要认真的补救 C++。第四,这已经完成了——boost::any就是为了这个目的。
| 归档时间: |
|
| 查看次数: |
16164 次 |
| 最近记录: |