2017-12-13 指針

上午講了3個重點

指針常量

指向常量的指針

可以修改指針指向,不能修改指向地址的內容。


常量指針

固定指向的指針,可以修改指向地址的內容,但是不能修改其指向性。


指向常量的常量指針

指針本身就是一個常量,即不能修改其指向的地址,但是因爲其指向的地址是個常量,所以連其指向地址的內容也沒法修改。


下午的內容

下午主要是講了2個函數的用法

malloc函數

動態內存空間申請

realloc

重新分配內存空間

成功會返回一個int *類型的空指針

失敗返回NULL

malloc函數一般使用方法是

int *p = malloc(sizeof(int));//給p申請一塊內存大小爲4個字節的內存空間


realloc函數

p = (int *)realloc(p, num*sizeof(int));

//給p重新定義一個首地址和大小

此時的p是一個類似數組的內存空間

上面的p = (int *)realloc(p, num*sizeof(int));

等價於

int a[1];

int *p=&a;

但是用realloc可以給這段類似數組的內存空間修改大小

還有一點很重要就是在銷燬指針p之前要把分配給p的內存空間釋放

free(p);

否則這段內存就會泄露

這就是內存泄露的主要原因

一個好的程序員是不會讓自己的程序泄露的



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章