我对以下代码有疑问:
int age = 20;
void * pointer;
pointer = alloc(sizeof(int), 0)
pointer = (void*) age;
它是如何工作的?
pointer
的价值是多少?
这条代码就行而言会发生什么:
pointer = (void*) age;
答案 0 :(得分:7)
此代码完全没有任何结果。
首先,您使用非标准分配方法为int
分配了一个指针。
然后,您将该指针指定为指向地址0x14,该地址可能不包含任何有效信息,如果您尝试取消引用它,则会给您一个SEGFAULT。
第三,你泄漏指针alloc
'的初始记忆,这绝不是一件好事。