指標學習十三 指標動態分配記憶體

2021-10-02 09:00:16 字數 1029 閱讀 6519

定義在stdlib.h裡

void *malloc(unsigned size)

再記憶體的動態儲存中分配一連續空間,長度為size。申請成功,返回指向所分配記憶體空間的

的起始位址的指標;否則返回null;

//動態分配n個整數型別大小的的空間,呼叫malloc時,利用sizeof計算儲存塊大小

if((p= (int *)malloc(n*sizeof(int)))==null)

void *calloc(unsigned n,unsigned size)

在記憶體的動態儲存區中分配n個連續空間,每一儲存空間的而長度為size,並且分配後還把儲存塊

裡全部初始化為0。申請成功,返回指向所分配記憶體空間的的起始位址的指標;否則返回null;

viod free(void *ptr)

盛放動態儲存分配函式申請到的整塊記憶體空間,ptr為指向要釋放空間的首位址。

釋放後不允許再通過該指標去訪問已經釋放的塊。

void *realloc(void *ptr,unsigned size)

更改以前的儲存分配。ptr必須是以前通過動態儲存分配得到的指標。引數size為現在

需要的空間大小。分配失敗,返回null;分配成功,返回一片能存放大小為siza的區塊。

//動態分派記憶體指標求和

#include#includeint main()

printf("enter %d intergers:",n);

for(i=0;i#includeint main()

printf("enter %d intergers:",n);

for(i=0;i*(p+j+1))

} }for(i=0;iprintf("%d ",*(p+i));

printf("\n");

free(p);

return 0;

} //enter n: 5

//enter 5 intergers:5 4 3 2 1

//5 3 2 1 0

動態分配記憶體返回位址對齊的指標

int mallocedmemory int malloc 1024 15 alignedmemory int int mallocedmemory 15 15 void alignedmemory 1 mallocedmemory return alignedmemory 15 而不是 16的原因...

指標陣列 陣列指標 二維陣列動態分配記憶體

2016 03 22 22 59 838人閱讀收藏 舉報 c 7 c 12 目錄 char a n 指向陣列的指標 a char n malloc sizeof char m printf d n sizeof a 4,指標 printf d n sizeof a 0 n,一維陣列 free a c...

記憶體動態分配

陣列的元素儲存於記憶體中連續的位置上。當乙個陣列被宣告時,它所需要的內存在編譯時就被分配。但是,你也可以使用動態記憶體分配在執行時為它分配記憶體。malloc所分配的是一塊連續的記憶體。例如,如果請求它分配100個位元組的記憶體,那麼它實際分配的記憶體就是100個連續的位元組,並不會分開位於兩塊或多...