亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

淄博市| 莒南县| 阳西县| 台湾省| 科技| 神农架林区| 潮州市| 云霄县| 宁都县| 疏附县| 云和县| 哈巴河县| 团风县| 四平市| 宁明县| 抚松县| 花垣县| 施秉县| 镶黄旗| 建瓯市| 湘乡市| 炎陵县| 沅江市| 淮滨县| 佛山市| 石狮市| 上虞市| 天镇县| 客服| 嘉黎县| 当雄县| 东明县| 桓台县| 苏尼特左旗| 武汉市| 承德市| 梧州市| 鞍山市| 麟游县| 扎兰屯市| 嘉禾县|