在 C 中,分配一个 3*sizeof(float) 的空间并创建一个大小为 3 的浮点数组,做的事情基本上是一样的吗?

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

我的问题是是否写下这一行: float* array = malloc(3*sizeof(float)); 相当于写:float array[3]; 如果没有,为什么?

(我真的是 C 新手)

我注意到,当我尝试操纵每个案例的元素时,它效果很好,但我怀疑它实际上是在较低级别(甚至更高级别)中以另一种方式编写的相同内容

arrays memory malloc programming-languages dynamic-memory-allocation
1个回答
0
投票

calloc
将内存初始化为 0,而
malloc
则返回的内存块未初始化。性能(此处为速度)也可能存在差异,其中
malloc
可能比
calloc
更快。最后,您可能会关心哪些内存用于分配。我看到了一个类似的问题,已经有一个很好的答案了(我无法评论,所以我自己把它放在一个答案中)。 使用问题中的数组示例所描述的任一函数都可以很好地访问返回的内存块。

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