【发布时间】:2022-01-21 10:25:53
【问题描述】:
我有一个项目,我必须在程序启动时分配 1024 个字节。在 C++ 程序中。
void* available = new char*[1024];
我写了这个,我觉得还可以。 现在我的问题开始了,我应该创建一个函数来接收我应该分配的 size_t 大小(字节数)。我的分配应该返回一个指向这个可用内存的第一个字节的 void* 指针。所以我的问题是如何分配具有大小的 void* 指针并从我的可用内存中获取内存。
我是一名学生,我不是 C++ 专业人士。 也很抱歉我的错误解释。
【问题讨论】:
-
好的,谢谢,这很有帮助。但是我的函数应该完全这样做:void * allocate (size_t size),它以字节为单位获取大小并返回一个指向专用内存块的指针
-
@CherryDT 这个我明白,但是如何从我之前分配的内存中分配这个指针。
-
这个函数应该这样做:当我给出一个字节大小时,我应该创建一个指针,该指针应该指向内存中的第一个字节,在那里我可以有足够的空间来存储这个新内存。跨度>
-
对不起,我完全误解了你的问题。你一直在谈论分配一个指针(这实际上并不是你做的事情),我以为你没有意识到
new已经返回了一个指向它刚刚分配的内存的指针,并且操作系统已经处理好了确保您有足够的空间。对我来说缺少的部分是你正在构建一个自定义堆/内存管理器。 -
@CherryDT 问题出在我的身上,对不起兄弟。但是,是的,我的任务是使用以下功能来做我的堆和内存管理器:new、free、delete。