IOS--Day03---memory allocation 動態記憶體分配

來源:互聯網
上載者:User

標籤:des   io   os   使用   sp   資料   on   代碼   bs   

記憶體: 分為五個地區

  • 棧區-----------系統分配以及回收記憶體.函數體內建立的變數存在棧區
  • 堆區------------由使用者指派和回收,如果使用者忘記回收 可能會導致記憶體不夠用, 程式退出時,堆記憶體由系統回收
  • 常量區-------------用於存放常量的記憶體地區
  • 靜態區 -------------定義在函數體外面的變數,由系統開闢空間,程式運行過程中一直存在,直至程式退出,由系統回收
  • 代碼區----------------存放代碼編譯結果

---------------------------------------------------------------------------------

malloc函數

void *malloc(unsigned int size);

malloc函數向系統申請分配size個連續的記憶體空間  但是不會把分配的空間清0

 free();//釋放記憶體

-----------------------------------

 void *calloc ( unsigned n,unsigned size);

分配n個size大小的空間

與malloc不同的是calloc申請的記憶體空間會初始化成0;

----------------------------------

void *realloc(void *p, unsigned newSize);

按新的長度重新分配記憶體

這三種都使用free釋放

------------------------------------------

記憶體操作函數

void *memset(void *s, int c, size_t n);

memset (p,0,sizeof(Student));

s開始,長度為n的所有位元組賦值為c;

通常用於清楚結構體或者數組資料

void *memcpy(void *dest,const void *source,size_t n);

從source 拷貝 n個位元組到dest中 

int memcmp(const void *buf1,const void *buf2,unsigned int count);

以上記憶體操作函數既可以用於堆記憶體頁可以用於棧記憶體

 

IOS--Day03---memory allocation 動態記憶體分配

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.