我需要用 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' 自动将内存值设置为零。
我希望这篇文章可以帮助你。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)