c++五大内存分区

本文详细介绍了C++中的内存分区,包括堆(malloc/new, free/delete)、栈、全局/静态存储区、文字常量区和程序代码区。讨论了堆和栈的主要区别,如申请方式、系统响应、大小限制和申请效率。" 106901423,9522408,C++面向对象特性详解:文件操作、函数重载与默认参数,"['C++', '编程', '面向对象', '文件处理', '函数设计']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文为转载加原创

c++内存分区问题

在c++中,内存分成5个区,包括堆、栈、全局(静态)存储区、文字常量区、程序代码区。

1.堆

由程序员手动分配和释放,完全不同于数据结构中的堆,分配方式类似链表。由malloc(c 语言)或new(c++)来分配,由free(c语言)和delete(c++)来释放。若程序员不释放,程序结束时由系统释放。

顺带复习下动态内存分配的方法

1)malloc和free

malloc 函数原型void *malloc(unsigned int num_bytes); ; 其中num_bytes是无符号整型,用于表示分配的字节数;返回值:如果分配成功则返回指向被分配内存的指针(此存储区中的初始值不确定),否则返回空指针NULL。void* 表示未确定类型的指针,void *可以指向任何类型的数据,更明确的说是指申请内存空间时还不知道用户是用这段空间来存储什么类型的数据。

例子:

#include <stdio.h>
#include <malloc.h>
int main(int argc,char**argv[])
{
   
	char *a = NULL;
	a = (
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值