1. 程式人生 > >形象描述malloc和free函式以及野指…

形象描述malloc和free函式以及野指…

CRT的記憶體管理模組是一個管家。   
你的程式(簡稱“你”)是一個客人。   
管家有很對水桶,可以用來裝水的。   
malloc的意思就是“管家,我要XX個水桶”。   
管家首先看一下有沒有足夠的水桶給你,如果沒有,那麼告訴你不行。如果夠,那麼登記這些水桶已經被使用了,然後告訴你“拿去用吧”。   
free的意思就是說:“管家我用完了,還你!”。   
至於你是不是先把水倒乾淨才給管家,那麼是自己的事情了。--是不是清零。   
管家也不會將你歸還的水桶倒倒幹清(他有那麼多水桶,每個歸還都倒乾淨豈不累死了)。反正其他用的時候自己會處理的啦。   
free之後將指標清零隻是提醒自己,這些水桶已經不是我的了,不要再完裡面放水了,^_^   
如果free了之後還用那個指標的話,就有可能管家已經將這些水桶給了其他人裝飲料的了,你卻往裡面撒了泡尿。好的管家可能會對你的行為表示強烈的不滿, 殺了你(非法操作)--這是最好的結果,你知道自己錯了(有錯就改嘛)。一些不好的管家可能忙不過來,有時候抓到你作壞事就懲罰你,有時候卻不知道去那裡 了--這是你的惡夢,不知道什麼時候、怎麼回事情自己就死了。不管怎麼樣,這種情況下很有可能有人要喝尿--不知道是你的老闆還是你的客戶了.^_^。   
所以啊,好市民當然是還了給管家的東西就不要再佔著啦,.^_^。


相關推薦

形象描述mallocfree函式以及

CRT的記憶體管理模組是一個管家。    你的程式(簡稱“你”)是一個客人。    管家有很對水桶,可以用來裝水的。    malloc的意思就是“管家,我要XX個水桶”。    管家首先看一下有沒有足夠的水桶給你,如果沒有,那麼告訴你不行。如果夠,那麼登記這些水桶已經被使用了,然後告訴你“拿去用吧”

【C語言】malloc()free()函式的講解以及相關記憶體洩漏問題

1、函式原型及說明: void *malloc(long NumBytes):該函式分配了NumBytes個位元組,並返回了指向這塊記憶體的指標。如果分配失敗,則返回一個空指標(NULL)。 關於分配失敗的原因,應該有多種,比如說空間不足就是一種。 void free(void *FirstByte): 該

mallocfree函式詳解(轉載只是為了查閱方便,若侵權立刪)

malloc和free函式詳解   本文介紹malloc和free函式的內容。   在C中,對記憶體的管理是相當重要。下面開始介紹這兩個函式:     一、malloc()和free()的基本概念以及基本用法: 1、函式原型及說明: void *malloc(lon

mallocfree函式詳解

 本文介紹malloc和free函式的內容。   在C中,對記憶體的管理是相當重要。下面開始介紹這兩個函式:   一、malloc()和free()的基本概念以及基本用法: 1、函式原型及說明: void *malloc(long NumBytes):該函式分

呼叫malloc()函式之後,核心發生了什麼?附malloc()free()實現的原始碼

         特此宣告:本文參照了另外一篇文章和一個帖子,再結合自己的理解總結了malloc()函式的實現機制。     我們經常會在C程式中呼叫malloc()函式動態分配一塊連續的記憶體空間並使用它們。那麼,這些使用者空間發生的事會引發核心空間什麼樣的反應呢? ma

newdelete、mallocfree之間的異同點以及用法例項

/* malloc和free new和delete 兩大類之間的<strong><span style="font-size:18px;">根本區別</span></strong> 1.malloc和free是屬於c語

malloc free例程

就會 ret sca stdlib.h int 註意 申請 printf malloc #include <stdio.h>#include <stdlib.h>int main(){int a;scanf("%d",&a);int *p=(

分配內存malloc()free()

c1、首先回顧一下內存分配的有關事實。所有的程序都必須留出足夠內存來存儲他們使用的數據。一些內存分配是自動完成的。如:float x;char place[]="dancing oxen creek".於是系統將留出存儲float或者字符串足夠的內存空間,也可明確要求確切的內存,int a[100];這一聲明

Unix系統編程()mallocfree的實現

原因 編程錯誤 alloc 系統編程 OS 內存分配 continued 我們 如何 盡管malloc和free所提供的內存分配接口比之brk和sbrk要容易許多,但在使用時仍然容易犯下各種編程錯誤。 理解malloc和free的實現,將使我們洞悉產生這些錯誤的原因

mallocfree使用要小心

先說一下用法:        char *stemp = (char*)malloc(256 * sizeof(char));         if(stemp == NULL) return

12 生成器生成器函式以及各種推導式

今日主要內容 1. 生成器 本質就是迭代器. 一個一個的建立物件 建立生成器的方式: 1. 生成器函式 2. 通過生成器表示式來獲取生成器 3. 型別轉換(看不到) 2. 生成器函式 (重點

python 生成器 生成器函式 以及各種推導式

一.生成器    本質就是迭代器. 我們可以直接執⾏__next__()來執⾏ 以下⽣成器 一個一個的建立物件 建立生成器的方式: 1.生成器函式 2.通過生成器 表示式來獲取生成器 3.型別轉換(看不到) 二.生成器函

C語言中 malloc free

from:http://blog.sina.com.cn/s/blog_af1a77fa0102xceb.html 一、malloc()和free()的基本概念以及基本用法: 1、函式原型及說明: void *malloc(long NumBytes):該函式分配了NumBytes個位元

python中的函式以及函式的可變引數,遞迴函式高階函式以及練習題目

函式作用:實現程式碼的複用 函式概念:函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的程式碼段。 函式能提高應用的模組性,和程式碼的重複利用率。你已經知道Python提供了許多內建函式,比如print()。但你也可以自己建立函式,這被叫做使用者自定義函式。 系統的幾

記憶體管理(malloc free 用法)

一、malloc() 和 free() 的基本概念和基本用法 1. 函式原型及說明 void *malloc( long NumBytes) 該函式分配了NumBytes個位元組,並返回了指向這塊記憶體的指標。如果分配失敗,則返回一個空指標NULL。失敗的原因有很多

淺談C中的mallocfree

一、malloc()和free()的基本概念以及基本用法: 1、函式原型及說明: void *malloc(long NumBytes):該函式在堆上分配了NumBytes個位元組的空間,並返回了指向這塊記憶體的指標。如果分配失敗,則返回一個空指標(NULL)。 關於分

關於c語言中mallocremalloc函式的分析

首先申明,這是本人第一次寫部落格,其目的僅僅是為了加強自己對知識點的掌握,為到達在本子上記筆記的效果 進入正題。對於malloc,它的作用就是為了動態分配空間,像c++中的new一樣。這裡就不說他們兩的區別了。malloc函式有這樣幾個特點。 1.分配的空間地址是連續的,

異常爬蟲demo、 find函式findAll函式 以及正則表示式查詢元素

程式碼位於書的第1-2章 # from urllib.request import urlopen # from bs4 import BeautifulSoup # html = urlopen("http://pythonscraping.com/pages/page1

【轉】系統呼叫函式以及API

         在寫程式的過程中,像MFC,VC++這些程式設計,都會涉及到函式的呼叫,有庫函式也有系統函式,下面看一看它們的區別!!            系統呼叫(system

sort排序cmp函式以及字典序的應用

今天做了一道排序的題,用了sort排序,而對附屬語句cmp函式的使用不熟悉 下面是一道題 生日(快樂暑假) 總時間限制:  1000ms 記憶體限制:  65536kB 描述 小明想要調查學校每個同學的生日,並按照年齡從大到小的順序排列,但是小明最