C 如何重置指针

C 如何重置指针,c,pointers,malloc,C,Pointers,Malloc,在玩了malloc给出的指针之后 uint8_t* mem = malloc(10); uint8_t* rst = mem; *mem++ <<= 3; // etc... mem = rst; uint8_t*mem=malloc(10); uint8_t*rst=mem; *mem++在这种特殊情况下,您可以使用rst进行指针调整,而不使用mem *rst++ <<= 3; // etc... ... 或者,根据需要调整mem,保持rst不变,最终释放r

在玩了malloc给出的指针之后

uint8_t* mem = malloc(10);
uint8_t* rst = mem;

*mem++ <<= 3;
 // etc...
 mem = rst;
uint8_t*mem=malloc(10);
uint8_t*rst=mem;

*mem++在这种特殊情况下,您可以使用
rst
进行指针调整,而不使用
mem

*rst++ <<= 3;
 // etc...

... 或者,根据需要调整
mem
,保持
rst
不变,最终释放
rst
。对于
free()
,重要的不是变量,而是它的值。换一种方式,将原始值保持在其原始位置不受干扰,肯定会更干净。如果您需要可修改的副本,请制作一份。总有
mem--
extern void adjust_mem(uint8_t *);

uint8_t* mem = malloc(10);

adjust_mem(mem);