gpt4 book ai didi

c++ - 在分配的地址实例化结构(分配赋值)

转载 作者:太空宇宙 更新时间:2023-11-04 02:17:52 25 4
gpt4 key购买 nike

对于我正在上的类(class),我们需要开发分配实用程序。

撇开安全不谈,我将使用远指针来接收和分配地址给一些结构。我也不允许在此作业中使用“memalloc”。

我引用了:Linked Lists in C without malloc了解如何在不使用 memalloc 的情况下创建链接结构。但是,我需要知道如何将新实例分配给特定地址。例如,如果我有一个指向地址 0x5000 的起始指针,我想创建我的列表,以便我可以使用增量偏移量(例如 256)来开始我的下一个结构提前 256 个字节(就地址而言)我的出发点。

这项作业的基础是熟悉分段和 x86 架构。

感谢任何帮助!

最佳答案

根据您想要执行的操作,您可能需要组合使用以下工具:

Placement new:您可以使用以下语法在特定内存位置构造对象:

new (reinterpret_cast<void*>(0x500)) MyObject(/* ...ctor args... */);

这不会分配任何新内存;相反,它只是使用指定的内存地址作为接收者对象来调用构造函数。小心对齐限制!

自定义分配器。您可以按照 std::allocator<T> 定义新类在您指定的位置保留内存。然后,您可以创建 STL 容器,自动在您想要的位置使用内存。

关于c++ - 在分配的地址实例化结构(分配赋值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4731656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com