c++ - 设置 void * 指针等于一个整数

标签 c++ pointers

<分区>

我对以下代码有疑问:

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

pointer = (void*) age;

它是如何工作的?

指针的值是多少?

这段代码在行方面发生了什么:

pointer = (void*) age;

最佳答案

这段代码完全没有完成任何事情。

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

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

第三,您泄漏了您为指针分配的初始内存,这绝不是一件好事。

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

关于c++ - 设置 void * 指针等于一个整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12038368/

相关文章:

c++:lseek给出与原始文件不同的值

c++ - 使用指向图像数据的指针访问 R、G 和 B 像素值

c++ - 一元 '*' 的无效类型参数(有 'bool' )

c++ - 访问内存时发生奇怪的崩溃

c++ - 如何以编程方式设置系统IP

c++ - 表达式结果与表达式表示的区别

objective-c - 使用 GCD 调度队列 block 外部定义的 C 指针对象 (CGImageRef) 时出现内存问题

c - 如何增加每个循环中具有全局指针的数组大小

c - 如何在c中读取文本文件,然后将每一行分割成标记?

c++ - 删除 vector 中的指针时出现段错误