gpt4 book ai didi

c++ - c++中增量垃圾收集模拟的内存分配

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:50:38 25 4
gpt4 key购买 nike

我需要在 C++ 或 Java 中模拟增量垃圾收集算法。基于此,我产生了疑问。

作为输入(来自键盘的stdin),我将被要求为这段代码分配一些内存。语法为:

x = alloc(128KB);

我的问题:是否可以使用 malloc 进行分配?或者还有其他分配内存的方法吗?我有这个疑问,因为分配的大小可以达到 GB,所以我认为使用 malloc 可能不是一个好主意。

最佳答案

首先,如果要禁止分配巨大的内存,只需检查用户的输入值,但我不确定您认为多少内存是巨大的内存。我认为您不必为此担心,因为如果内存分配失败,malloc 和 calloc 将返回 NULL 指针。

其次,您也可以在这种情况下使用“calloc”。

void calloc(size_t num, size_t size);

“num”是分配元素的平均计数,“size”当然是元素的大小。下面的代码有相同的结果。

ar = (int *)malloc(5 * sizeof(int));
ar = (int *)calloc(5, sizeof(int));

但是,如果您选择“calloc”,您可以更逻辑地管理您的代码,因为您可以按单位和计数划分内存数量。此外,如果您使用“calloc”,则无需使用 memset 将内存值设置为零。'calloc' 自动将内存值设置为零。

希望本文能对您有所帮助。

关于c++ - c++中增量垃圾收集模拟的内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16474393/

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