int *pOld = malloc(sizeof(int));
int *pNew = malloc(sizeof(int));
pOld = pNew; // 丟失 pOld 原本指向的記憶體
free(pOld); // 實際釋放的是 pNew 的記憶體
int *pOld = malloc(sizeof(int));
int *pNew = malloc(sizeof(int));
free(pOld); // 先釋放舊記憶體
pOld = pNew; // 再指向新記憶體
// 後續使用 pOld 即操作 pNew 那塊記憶體
// 最後 free(pOld) 即可
malloc 必須有對應的 free。NULL 可避免野指標。