4.文字常量区:
p与p1的指针地址一致,且字符串常量是不能被改变的。
结论:C++中同一字符串常量只有一份,且保存在常量存储区,其生命周期从程序运行开始到程序结束。
但是p与p1指针变量在函数结束时,就会结束生命。
5.程序代码区:存放一系列代码。
动态内存
1.按需分配,根据需要分配内存,不浪费。
内存拷贝函数
void *memcpy(void *dest, const void *src, size_t n); #include <string.h>
功能:从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。
2.被调用函数之外需要使用被调用函数内部的指针对应的地址空间(动态内存不释放就会一直存在,直到进程结束。)
new delete C++的动态内存分配运算符;c语言是 malloc函数,参数是所需内存的字节数,返回指针类型是void*,需要强制类型转化(int* p = (int *)malloc(字节数)),c中释放用free(地址)
3.突破栈的限制,可以分配更多的空间。
动态内存的分配,使用,释放
new free可以混搭用,malloc delete可以混搭用。
用delete时,定义时带着[ ]时,delete时要:delete[ ] 地址名。 因为malloc的参数是字节数,所以delete时,不用加[ ]。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现