中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

整理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

娱乐| 宁明县| 梅河口市| 石棉县| 丘北县| 双桥区| 象山县| 中西区| 蒙山县| 克东县| 灌阳县| 论坛| 固镇县| 邻水| 清徐县| 青冈县| 布拖县| 庆阳市| 娱乐| 盖州市| 松江区| 西乌珠穆沁旗| 仙游县| 通城县| 夏津县| 常熟市| 密山市| 互助| 巴林右旗| 汉川市| 武清区| 湄潭县| 兴化市| 临西县| 广州市| 东宁县| 兴文县| 额尔古纳市| 西乡县| 怀远县| 遵义县|