c - 通过 malloc 生成的数组与不是通过 malloc 生成的数组有何不同

标签 c memory-management malloc

我不是很了解malloc,那些用malloc创建的只是在堆上创建的吗?

最佳答案

是的,当您 malloc 时,您是在堆中进行分配。

malloc 函数从堆中请求一 block 内存。如果请求被批准,操作系统将保留您请求的内存量。

当您的数据的生命周期必须不同于分配它的代码范围时,您应该使用 malloc。例如:你在一个函数中 malloc,你存储/保留一个指向该分配空间的指针,然后你可以在另一个函数中使用它。

与堆栈分配相比,另一个优点是您可以检查 malloc 是否失败,假设您没有足够的可用内存。

旁注:不要忘记freemalloc

关于c - 通过 malloc 生成的数组与不是通过 malloc 生成的数组有何不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26581193/

相关文章:

C: 为什么 snprintf 只写 4 个字符到我的变量?

c - 在以下情况下,哪个更好? fread() 还是 mmap()?

c - mq_unlink 将 errno 设置为 EEXIST

c - While 循环中的 0.1 增量(C 编程)

ios - Titanium MapView 不释放内存

c - C 中的数组内存分配取决于命名约定?

c - 从函数返回结构元素的 malloc

xcode - 获取当前执行的应用程序的PID

c - 使用 scanf 接受字符串并使用 printf 显示它们

C++ 结构动态内存分配