91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

整理C知識點--動態內存分配

發布時間:2020-07-07 20:11:23 來源:網絡 閱讀:716 作者:No1Way 欄目:編程語言

為什么需要動態分配內存?
因為動態數組可以解決靜態數組的缺陷
(1).靜態數組長度必須先指定,并且只能是常整數,而且也不能為變量(長度不能為不確定的數)
(2).靜態數組,程序員無法手動釋放內存
(3).靜態數組確定后 無法更改(不能自主的擴充或縮小)
(4).靜態數組不能跨函數調用

動態內存分配--動態數組的構造

e.g:
int *p = (int *)malloc(int Len);
//表達式左側是靜態分配的 占用4個字節(int),右側是動態分配的,含有Len個字節

1.malloc只有一個int型參數,表示要求系統分配的字節數
2.malloc函數的功能是請求系統分配Len個字節的內存空間,如果分配成功則返回第一個字節地址,若不成功則返回NULL
malloc函數只能返回第一個字節的地址,把這個地址轉化為一個實際意義的地址,malloc前必須加(數據類型 *),表示把空類型轉化為對應數據類型的地址

e.g:
int *p = (int *)malloc(50);
//表示把系統分配的50個字節的第一個字節轉化為int*型的地址,再準確的說就是把第一個字節的地址轉化成4個字節的地址;
P指向第一個4字節 P+1指向第2個地址 P[0]第一個元素 P[i]就是i+1個元素

動態內存的釋放
free(p);//表示把p指向的內存釋放 P本身的內存是靜態的

靜態內存 和 動態內存比較
靜態內存是由系統自動分配的,由系統自動釋放
靜態內存是在棧分配的
整理C知識點--動態內存分配
動態內存是有程序員手動分配的,由程序員手動釋放
動態內存是在堆中分配的
(使用棧就象我們去飯館里吃飯,只管點菜(發出申請)、付錢、和吃(使用),吃飽了就
走,不必理會切菜、洗菜等準備工作和洗碗、刷鍋等掃尾工作,他的好處是快捷,但是自
由度小。
使用堆就象是自己動手做喜歡吃的菜肴,比較麻煩,但是比較符合自己的口味,而且自由
度大。 (引用其他的大神的 有興趣的同學可以自行研究) )

跨函數使用內存的問題(重點)
靜態內存不可以跨函數使用
所謂靜態內存不可以跨函數使用的具體是:
靜態內存在函數執行期間 可以被其他函數使用
在執行完畢之后就不能在被其他函數使用

動態內存可以跨函數使用
動態內存在函數執行完畢之后仍可以被其他函數調用

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大渡口区| 富川| 沙田区| 辽宁省| 武乡县| 太原市| 阿鲁科尔沁旗| 通州区| 庄浪县| 长葛市| 宝山区| 宾川县| 奈曼旗| 枣庄市| 丘北县| 正定县| 潜山县| 内黄县| 洞口县| 贵阳市| 攀枝花市| 孟连| 称多县| 阿合奇县| 柏乡县| 桐柏县| 思南县| 大理市| 诸城市| 辉县市| 涞源县| 水城县| 方城县| 泽库县| 都昌县| 博野县| 梁河县| 扶余县| 永清县| 庆元县| 长阳|