C語言之記憶體分配函式

2022-09-08 13:39:12 字數 3046 閱讀 4913

#include #include 

#include

intmain()

printf("\n

");free(pm);

pm =null;

}int *pc;

pc = (int *)calloc(100, sizeof(int

)); printf(

"使用calloc分配的儲存空間\n");

for (int i=0; i<100; i++)

}printf("\n

");free(pc);

pc =null;

int *pms = (int *)malloc(sizeof(int)*100

);

if(null !=pms)

printf(

"使用memset分配的儲存空間\n");

for (int i=0; i<100; i++)

}printf("\n

");free(pms);

pms =null;

printf(

"使用realloc分配的儲存空間\n");

int *pre = (int *)malloc(sizeof(int) * 50

);

if (null !=pre)}}

printf("\n

");free(pre);

pre =null;

return0;

}

使用malloc分配的儲存空間

4138720

413392800

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

3027544

81465662020

1870093388

1886612338

1550148449

1869440356

1650803804

710698869 -2147450880 -2147450880 -2147450880

1543503964

11955

4138720

4133952 -2147450880 -2147450880 -2147450880 -2147450880 -2147450880 -2147450880 -2147450880 -2147450880

使用calloc分配的儲存空間00

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

00使用memset分配的儲存空間00

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

00使用realloc分配的儲存空間

4133528

4133824

4133880

538976288

402653208

11933

4132712

4128964

538976288

538976288

538976288

538976288

538976288

538976288

538976288

538976288

538976288

538976288

538976288

538976288

538976288

538976288

538976288

538976288

538976288

538976288

538976288

538976288

538976288

538976288

538976288

538976288

538976288 -14671840

1684957440

1601402735

134217736

11964

4139504

4128964

1113340483

1765954646

1700027502

1551070323

1953721961

1886153825

1634427745

1666999655

1869375859

181884682300

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

C C 語言之記憶體分配

一.理論 乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,c語言中對應的主要函式有malloc 和free c 中是new和delete...

C語言之記憶體使用

問題 記憶體使用 有人寫了乙個將整數轉換為字串的函式 char itoa int n 如果我呼叫這個函式 char str5 itoa 5 str5會是什麼結果呢?答案分析 答案是不確定,可以確定的是肯定不是我們想要的 5 retbuf定義在函式體中,是乙個區域性變數,它的記憶體空間位於棧 stac...

深入C語言之記憶體問題

最近瘋狂學習c語言當中,看到有啟蒙文章,心中大喜,隨複製。記憶體,c語言中出現詭異bug的兩大 源泉 之一。即使是久經沙場的老手,也有時也難免落入陷阱。本文將涉足這個雷區,一 竟。本人菜鳥乙隻,屬於初探,不敢深挖。記憶體分為哪些段?一般來說,c語言中記憶體分為 棧 stack 堆 heap 全域性變...