1.内存管理

1.1 进程中的内存区域划分

代码区   仅仅读常理区    全局区    BSS     堆   栈

1.2 字符串存储形式之间的比較

字符指针,字符数组。字符动态内存

1.3 虚拟内存管理技术

Unix/Linux系统总的内存都是採用虚拟内存管理技术进行管理。即:每一个进程都有0~4G的内存地址

(虚拟的并非真实存在的),由操作系统负责把内存地址和真实的物理内存映射起来,因此,不同进程

的内存地址看起来是一样的,可是所相应的物理内存是不一样的。

用户空间 0~3G。 虚拟内核空间3~4G

1.4 段错误的由来

(1)scanf函数缺少 &

(2)空指针、野指针的使用

(3)师徒使用一个没有经过映射的虚拟地址可能引发段错误

1.5使用malloc申请动态内存的特性

须要额外的12个字节用于存储管理动态内存信息

採用链表的方式处理多个内存块

使用malloc千万不要越界

(2)使用malloc 申请内存的一般映射

一般说来。使用malloc申请较小的内存时,操作系统一次性分配33个内存页

#include <unistd.h>

getpid() 获取当前进程的进程号

cat / proc/ 进程号/maps 查看指定进程的内存分配情况

1.6使用free释放动态内存特性

1.7 内存处理相关函数

(1)getpagesize 函数

函数功能:

主要用于获取当前系统中一个内存页大小。一般为4kb

(2)sbrk函数

#inlcude <unistd.h>

void *sbrk(intptr_t increment);

(3)brk函数

int brk(void *addr);

sbrk 申请 brk 释放

Summary Day30的更多相关文章

  1. Summary of Critical and Exploitable iOS Vulnerabilities in 2016

    Summary of Critical and Exploitable iOS Vulnerabilities in 2016 Author:Min (Spark) Zheng, Cererdlong ...

  2. 三个不常用的HTML元素:<details>、<summary>、<dialog>

    前面的话 HTML5不仅新增了语义型区块级元素及表单类元素,也新增了一些其他的功能性元素,这些元素由于浏览器支持等各种原因,并没有被广泛使用 文档描述 <details>主要用于描述文档或 ...

  3. [LeetCode] Summary Ranges 总结区间

    Given a sorted integer array without duplicates, return the summary of its ranges. For example, give ...

  4. Network Basic Commands Summary

    Network Basic Commands Summary set or modify hostname a)     temporary ways hostname NEW_HOSTNAME, b ...

  5. Summary - SNMP Tutorial

    30.13 Summary Network management protocols allow a manager to monitor and control routers and hosts. ...

  6. Mac Brew Install Nginx Summary

    ==> Downloading https://homebrew.bintray.com/bottles/nginx-1.10.1.el_capitan.bot################# ...

  7. Leetcode: LFU Cache && Summary of various Sets: HashSet, TreeSet, LinkedHashSet

    Design and implement a data structure for Least Frequently Used (LFU) cache. It should support the f ...

  8. How to add taxonomy element to a summary view?

    [re: Orchard CMS] This caused me scratching my head for days and now I can even feel it's bleeding. ...

  9. (转) Summary of NIPS 2016

    转自:http://blog.evjang.com/2017/01/nips2016.html           Eric Jang Technology, A.I., Careers       ...

随机推荐

  1. Linux集群的I/O性能测试

    Linux集群的I/O性能测试   本文介绍利用iozone的性能测试工具,来测试集群性能.测试步骤如下:1.在Server节点上安装iozone(可以到www.iozone.org上下载) #rpm ...

  2. POJ 2981 Strange Way to Express Integers 模线性方程组

    http://poj.org/problem?id=2891 结果看了半天还是没懂那个模的含义...懂了我再补充... 其他的思路都在注释里 /********************* Templa ...

  3. 旧知识打造新技术--AJAX学习总结

    AJAX是将旧知识在新思想的容器内进行碰撞产生的新技术:推翻传统网页的设计技术,改善用户体验的技术. 学习AJAX之初写过一篇<与Ajax的初次谋面>.当中都仅仅是一些自己浅显的理解.这次 ...

  4. 初步使用RecyclerView实现瀑布流

    先看效果 关于RecyclerView,真的是很强大. 个人觉得主要方便的地方是 1.直接可以设置条目布局,通过setLayoutManager LinearLayoutManager:线性布局,横向 ...

  5. java三元表达式编程规范问题

    package day01; public class Program { public static void main(String[] args) {        // TODO Auto-g ...

  6. 26.多线程join detach

    #include <iostream> #include <thread> #include <array> #include <Windows.h> ...

  7. Android 多线程断点续传同时下载多个大文件

    最近学习在Android环境中一些网络请求方面的知识,其中有一部分是关于网络下载方面的知识.在这里解析一下自己写的demo,总结一下自己所学的知识.下图为demo的效果图,仿照一些应用下载商城在Lis ...

  8. CISP/CISA 每日一题 10

    CISA 每日一题(答)一个合理建造的数据仓库应当支持下列三种基本的查询格式: 1.向上溯源和向下溯源——向上溯源是对数据进行总计:向下溯源是将数据进行细化: 2.交叉溯源——通过通用属性访问数据仓库 ...

  9. JavaScript学习总结(1)——JavaScript基础

    一.JavaScript语言特点 1.1.JavaScript是基于对象和事件驱动的(动态的) 它可以直接对用户或客户输入做出响应,无须经过Web服务程序.它对用户的响应,是采用以事件驱动的方式进行的 ...

  10. POJ——T 1006 Biorhythms

    http://poj.org/problem?id=1006 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 138219   ...