我正在尝试使用 C 语言中的桶排序算法来实现一些东西,
因此,为了使算法正常工作,我需要手动将数组中的每个项目初始化为零,
但如果我使用calloc
,无论如何我都会将所有值初始化为零。
我确信的唯一区别是,通过使用 calloc
,我将其全部放入堆内存中 - 这是一个很大的区别吗?
问题是 - 这两种方式的优缺点是什么? (性能等)
最佳答案
如果您需要对数组进行分配和零填充,那么 calloc 是最简单的方法。不要让零初始化驱动堆栈或堆分配之间的选择。独立做出选择。
不要纠结于分配和初始化的性能。你正在排序。排序将占主导地位。您将无法可靠地测量分配和零初始化。与往常一样,如果您真的想了解性能,就进行测量。
关于c - 实现桶排序 - 使用 calloc 获得更好的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16005617/