如何重置指针

时间:2019-02-14 00:26:38

标签: c pointers malloc

在使用malloc给定的指针之后。

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

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

是否还有其他“优雅”的方法来重置指向malloc给定的ram的第一个元素的指针,而不是在分配之后立即复制其值?

1 个答案:

答案 0 :(得分:3)

在这种情况下,您可以使用rst进行指针调整,而不必理会mem

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

如果您所做的修改作为一个功能单元有意义,那么您可以将代码封装在一个函数调用中,而避免完全声明rst

extern void adjust_mem(uint8_t *);

uint8_t* mem = malloc(10);

adjust_mem(mem);