malloc与直接声明变量的区别

/**

  • 以下操作都以声明数组为例 !
  • 一 使用形式的区别
  • malloc的使用:
  •    int *a = (int *)malloc(sizeof(int)*N); 
    
  • 直接声明:
  •   int a[N]; 
    

*二 分配方式的区别

  • malloc动态分配----内存是在堆区分配的,分配内存时需要在堆区分配,耗时较大,因为内存管理操作的缘故,分配的内存需要手动析构;
  • int a[N] 静态分配 ----存储区是在栈里分配的,耗时相对小,因为该操作只需要移动栈指针就行,分配的内存自动析构。
  • 三 释放
  • malloc使用完不调用free会引起内存泄漏
  • int a[N]–静态分配–栈上分配的内存系统自动释放
  • 四 作用范围---------------见示例代码
  • malloc 全局
  • int a[N] 局部
  • 五 总结
  • 如果变量有局部性、知道其大小、且存储区无须变动时,使用静态分配,否则动态分配

*/

作者:SuilandCoder
来源:CSDN
原文:https://blog.csdn.net/SuilandCoder/article/details/78578446
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值