這里特別說(shuō)明 void * 并不是說(shuō)是空指針 ?而是說(shuō) 這個(gè)指針是通用型的或者是無(wú)類型的 ?使用的時(shí)候 把它轉(zhuǎn)換成啥類型就是啥類型?
比如 p=(int*)malloc(10*sizeof(int));
另外一點(diǎn)需要注意 ?
int *p1=NULL;
void *p2;
p1 p2絕不相同 ?p1是空指針類型已經(jīng)確定? p2是類型未知且未初始化的指針
calloc()將分配的內(nèi)存全部初始化為0 ?可以避免一些不必要的錯(cuò)誤 我們建議使用calloc()進(jìn)行動(dòng)態(tài)內(nèi)存分配
realloc()
這里需要注意的是 realloc之前最好用一個(gè)指針把原來(lái)的地址p存儲(chǔ)一下 ?防止在進(jìn)行操作的時(shí)候丟失原地址
因?yàn)閞ealloc()的返回值是新分配的存儲(chǔ)空間的地址 與原地址未必相同