C++面向对象:堆空间
发布时间
阅读量:
阅读量
C++面向对象(六):堆空间
为实现对内存生命周期及容量的灵活管理,通常会借助堆空间进行内存分配。
堆空间的申请与释放 :
- malloc \ free (继承自C语言的传统方式)
- new \ delete (C++语言新增的机制)
- new[ ] \ delete[ ]
注意事项 :
- 在成功申请堆空间后,系统将返回对应内存区域的地址。
- 堆内存不会被系统自动回收,必须由用户手动进行释放操作。因此,申请与释放之间需保持一一对应的关系,否则可能导致内存泄漏问题。
- 在释放过程中,所回收的内存大小将严格对应于之前申请的数量。
- 在某些情况下,堆空间的申请可能会失败。例如当请求分配的空间过大时,系统可能无法满足需求。此时部分平台会抛出异常信息,而另一些平台则可能返回一个空指针作为响应。
malloc \ free 示例:
void test() {
// 向操作系统申请4个字节的空间,会返回这一段内存空间的首地址(4个字节中第一个的地址)
// 这里作为int使用,返回的是void类型,所以强转成 int
int *p = (int *)malloc(4);
*p = 65;
cout << *p
全部评论 (0)
还没有任何评论哟~
