C编程面试题关于动态内存分配

问题描述 投票:0回答:1

如果你想在堆中动态分配8字节内存,但这8字节内存不是连续可用的。它在堆中分别以 5 字节和 3 字节的形式提供。那么可以分配内存吗?如果是,怎么办?

如果是,我们可以只使用 malloc 或 malloc 与 calloc

c pointers malloc dynamic-memory-allocation
1个回答
1
投票

堆的粒度通常为 8 或 16 字节。不太可能有 2 个块分别可用于 5 字节和 3 字节,并且它们都不可用于 8 字节的分配。如果内存非常稀缺,您遇到这种情况,您不应该尝试使用 2 个单独的块来处理需求,而应该发出内存不足的信号并妥善处理。

© www.soinside.com 2019 - 2024. All rights reserved.