程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C說話中堆空間的生成與釋放詳解

C說話中堆空間的生成與釋放詳解

編輯:關於C++

C說話中堆空間的生成與釋放詳解。本站提示廣大學習愛好者:(C說話中堆空間的生成與釋放詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是C說話中堆空間的生成與釋放詳解正文


堆空間的分派和釋放
 #include <stdlib.h>
 malloc、calloc、realloc、free
 malloc
 void *malloc(size_t size);
 功效:在堆平分配 size 字節的持續空間
 參數:size_字節數
 前往值:勝利前往分派空間的首地址,掉敗前往 NULL
 
 free
 void free(void *ptr);
 功效:釋放由 malloc、calloc、realloc 分派的空間
 參數:ptr_空間的首地址
 前往值:無
 留意:
 1、每一個空間只能釋放一次
 2、ptr 必需是分派空間的首地址

 calloc
 void *calloc(size_t nmemb, size_t size);
 功效:在堆平分配 nmemb 塊年夜小為 size 字節的持續空間
 參數:nmemb_數據塊數 size_每塊年夜小
 前往值:勝利前往分派空間的首地址,掉敗前往 NULL
 留意:calloc 會把空間內容置 0,而 malloc 不會

 realloc
 void *realloc(void *ptr, size_t size);
 功效:在 malloc、calloc、realloc 分派的 ptr 開端空間,從新分派為 size 字節年夜小
 參數:ptr_malloc、calloc、realloc 分派空間首地址 size_總年夜小
 前往值:勝利前往分派空間的首地址 掉敗前往 NULL
 
 留意:
 1、假如 size 小於原空間年夜小,不會起感化
 2、新增長的空間不會置 0
 3、假如 ptr 為 NULL,相當於 malloc(size)
 4、假如 ptr 不為 NULL 而且 size == 0,相當於 free(ptr)
 5、ptr 不須要釋放,假如分派勝利,只釋放從新分派空間的首地址
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved