将void *指针设置为等于整数

时间:2012-08-20 13:12:30

标签: c++ pointers

我对以下代码有疑问:

int age = 20;
void * pointer;
pointer = alloc(sizeof(int), 0)

pointer = (void*) age;

它是如何工作的?

pointer的价值是多少?

这条代码就行而言会发生什么:

pointer = (void*) age;

1 个答案:

答案 0 :(得分:7)

此代码完全没有任何结果。

首先,您使用非标准分配方法为int分配了一个指针。

然后,您将该指针指定为指向地址0x14,该地址可能不包含任何有效信息,如果您尝试取消引用它,则会给您一个SEGFAULT。

第三,你泄漏指针alloc'的初始记忆,这绝不是一件好事。

总的来说,这是一个非常糟糕的设计模式。