c指標深入理解--動態記憶體管理
阿新 • • 發佈:2021-12-14
一、動態記憶體管理:
1)malloc:
特點:單純的分配記憶體,執行速度較快
2)calloc:
特點:分配記憶體,並對該記憶體清零,執行速度比malloc慢
3)realloc:
-》函式原型:void *realloc(void *ptr, size_t size);
*ptr 不為空:
1)size = 空,釋放記憶體
2)size 比原記憶體小,利用當前記憶體塊,分配更小記憶體塊
3)size比原記憶體大,當前位置或者其他位置分配更大記憶體
4)alloca:
特點:在盞分配記憶體
二、迷途指標:
1)釋放記憶體時,沒有先清零指標
-》情況1,
int *ptr = malloc( sizeof(int ));
*ptr = 10;
free( *ptr); // 因釋放前沒有清零指標,導致ptr變成了迷途指標。
-》情況二
int *ptr = malloc( sizeof(int ));
*ptr = 10;
int *ptr2;
ptr2 = ptr; // 這個也是迷途指標
free( *ptr); // 因釋放前沒有清零指標,導致ptr變成了迷途指標。
2)指標在全域性定義,但在盞內賦值
int *ptr;
{
int tmp = 10;
ptr = &tmp;
}