目录
1. malloc
❤️例:malloc使用
⭐️静态开辟空间的方式
⭐️动态开辟空间的方式
2. free
❤️例:free使用
3. calloc
❤️calloc和malloc函数的对比:
⭐️不同点1:参数个数不同
⭐️不同点2:有无初始化
用malloc开辟的空间,默认是随机值!用calloc开辟的而空间,默认是初始为0!
(1)对于malloc
(2)对于calloc
4. realloc
当我们用malloc或者calloc动态开辟空间后;怎样继续进行扩容呢?这就需要realloc!
❤️例:realloc使用
⭐️第一步先calloc动态开辟
⭐️第二步再realloc动态扩容
❤️例:realloc单独使用和malloc使用效果类似
5. 常见的动态内存错误
❤️5.1 对(空指针)NULL指针的解引用操作
❤️5.2 对动态开辟空间的越界访问
❤️5.3 使用free释放非动态开辟的空间
❤️5.4 使用free释放动态内存的一部分
❤️ 5.5 对同一块动态内存多次释放
❤️5.6 动态开辟内存忘记释放(内存泄漏)
6. 几个经典的笔试题
❤️6.1 题目1:
问题1:
问题2:
⭐️修改方法1:
⭐️修改方法2:
❤️6.2 题目2:
问题:
❤️6.3 题目3:
问题:
❤️6.4 题目4:
问题:
❤️6.5 题目5:
问题:
❤️6.6 经典例题补充
解析:
7. C/C++程序的内存开辟
8. 柔型数组
C99 中,结构中的最后一个元素允许是未知大小的数组,这就叫做『柔性数组』成员。