/**
- 以下操作都以声明数组为例 !
- 一 使用形式的区别
- 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
版权声明:本文为博主原创文章,转载请附上博文链接!