久久久久久国产精品免费免,久久成人免费观看全部免费,久久久久久久久久免免费精品

網站開發 APP開發 小程序開發 SEO優化 公司新聞

C語言--數組動態分配內存

2018-05-30 09:25:24
1337

  傳統數組的長度必須事先制定好,且只能是常整數,不能是變量,長度一旦定義便不能再改變;其占用的內存我們無法手動釋放,在一個函數運行間該函數眾的數組所分配到的空間知道函數運行完之后才會被釋放;其不能夠跨函數運行.

  所以就出現了動態數組.動態數組很好的解決了傳統數組的這幾個缺陷.

  舉個例子:

  int *p=(int *)malloc(int size);

  上面這個語句分配了兩片內存,一片內存是動態分配的總共size個字節,另一片是靜態的.

  malloc函數只有一個int類型的形參,表示的是分配的字節數,malloc函數的作用就是請求size個字節的內存空間,若成功便返回空間的地址,若失敗就會返回null.malloc函數能且只能返回一個第一個字節的地址,故我們需要把這個無任何實際意義的第一個字節的地址轉化為一個有實際意義的地址,比如:

  int *p=(int *)malloc(100);

  表示將非配好的100個字節的第一個字節地址轉化為int *類型的地址,這樣p就指向了第一個的四個字節,p+1就指向了第二個四個字節...以此類推.

  動態數組釋放內存

  freep(p)表示吧p所指向的內存給釋放掉,而p自身的內存是靜態的我們不能手動釋放,p本身的內存只能在p變量鎖在的函數運行結束是系統自行釋放.

  靜動態內存的比較:

  靜態內存有系統自動分配,且由系統釋放;

  靜態內存是棧分配的

  動態內存是由開發者手動分配,手動釋放的;

  動態內存是堆分配的

?
<rp id="cxbmw"></rp>

<sup id="cxbmw"></sup>
  • <rp id="cxbmw"><form id="cxbmw"><nav id="cxbmw"></nav></form></rp>
    <big id="cxbmw"><delect id="cxbmw"><font id="cxbmw"></font></delect></big>
    <rp id="cxbmw"></rp>
    主站蜘蛛池模板: 汉源县| 平安县| 秦皇岛市| 尚志市| 南和县| 江西省| 包头市| 灵山县| 平武县| 崇文区| 吐鲁番市| 灵山县| 临江市| 泰宁县| 新宾| 聊城市| 阿鲁科尔沁旗| 庄浪县| 营山县| 枣强县| 吉水县| 安阳市| 扎赉特旗| 布尔津县| 屏山县| 开江县| 临武县| 葫芦岛市| 土默特左旗| 永城市| 翁源县| 来宾市| 枣阳市| 松溪县| 甘德县| 水富县| 玛纳斯县| 汝州市| 布尔津县| 绥芬河市| 新疆|