内存分区模型

news/2024/7/20 12:58:25 标签: c语言, 内存管理

内存分区模型

代码区:存放函数体的二进制代码,CPU执行的机器指令。共享,只读

全局区:存放全局变量、静态变量(static) ,程序结束后由操作系统释放

常量区:存放字符串常量、const修饰的全局常量

栈区:编译器自动分配,用来存放函数参数值、局部变量、const修饰的局部常量等

堆区:由程序员申请和释放,若程序员没有释放,则程序结束由操作系统自动回收。C语言中用malloc()和free()实现;C++中用new和delete实现

 

分区意义:不同区域存放的数据,赋予不同的生命周期,灵活编程

#include<stdio.h>
#include<string.h>

int a = 0; //全局初始化区
char *p1;// 全局未初始化区

int main()

{

    int b; //栈
    char s[] = "abc";// 栈
    char *p2;// 栈
    char *p3 = "123456"; //123456\0在常量区,p3在栈上。

    static int c =0; //全局(静态)初始化区

    p1 = (char *)malloc(10);
    p2 = (char *)malloc(20);//分配得来得10和20字节的区域就在堆区。

    strcpy(p1, "123456");// 123456\0放在常量区,编译器可能会将它与p3所指向的"123456"优化成一个地方。

    return 0;

}

 


http://www.niftyadmin.cn/n/1807428.html

相关文章

设置ListView显示到最后一行

上次聊天的那个界面上用的一个TextView&#xff0c;然后每次消息都用text.append("消息内容""\n")函数来在text字符串后边接一段&#xff0c;然后重新显示这个内容。 现在需要美化界面&#xff0c;将消息内容放到一个ListView里边&#xff0c;每个消息是一…

Spring3.2不支持jdk8

解决方案&#xff1a; http://stackoverflow.com/questions/24128045/spring-context-initialization-failed-with-java-lang-illegalargumentexception-whi http://stackoverflow.com/questions/22730801/java-se-spring-data-hibernate 摘记&#xff1a; The exception you s…

Python_头条推荐系统_深度学习与推荐系统TensorFlow框架(5)

6.1 推荐系统与深度学习关联 学习目标 目标 无应用 无6.1.1 深度学习到推荐系统 深度学习发展成功与局限 最近几年深度学习的流行,大家一般认为是从2012年 AlexNet 在图像识别领域的成功作为一个里程碑。AlexNet 提升了整个业界对机器学习的接受程度:以前很多机器学习算法…

Python_头条推荐系统_黑马头条排序模型进阶(6)

7.1 神经网络基础与原理 学习目标 目标 了解感知机结构、作用以及优缺点了解tensorflow playground的使用说明感知机与神经网络的联系说明神经网络的组成说明神经网络的分类原理说明softmax回归说明交叉熵损失应用 无7.1.1 神经网络 人工神经网络( Artificial Neural Networ…

人工智能NLP项目_深度学习和神经网络(1)

1深度学习的介绍 目标 知道什么是深度学习 知道深度学习和机器学习的区别 能够说出深度学习的主要应用场景 知道深度学习的常见框架 1. 深度学习的概念 深度学习(英语:deep learning)是机器学习的分支,是一种以人工神经网络为架构,对数据进行特征学习的算法。 2. 机器学…

.net 4.0 中的特性总结(四):Tuple类型

Tuple是具有指定数量和顺序的值的一种数据结构。针对这种数据结构&#xff0c;.Net4.0中提供了一组Tuple类型&#xff0c;具体如下&#xff1a; Tuple Tuple<T> Tuple<T1, T2> Tuple<T1, T2, T3> Tuple<T1, T2, T3, T4> Tuple<T1, T2, T3…

在centos下keepalive+nginx(proxy)+nginx(web)搭建

前言&#xff1a; 本文是在docker上安装四台centos下做测试&#xff0c;两台nginx服务器做负载&#xff0c;两台nginx服务器做后台应用服务器&#xff0c;keepalived安装在nginx负载上做主从切换。&#xff08;nginx负载服务器的高可用。方式一&#xff1a;两台服务器&#xff…

人工智能NLP项目_pytorch(2)

Pytorch的安装 目标 知道如何安装pytorch 1. Pytorch的介绍 Pytorch是一款facebook发布的深度学习框架,由其易用性,友好性,深受广大用户青睐。 2. Pytorch的版本 3. Pytorch的安装 安装地址介绍:https://pytorch.org/get-started/locally/ 带GPU安装步骤: conda ins…