在使用malloc给定的指针之后。
uint8_t* mem = malloc(10);
uint8_t* rst = mem;
*mem++ <<= 3;
// etc...
mem = rst;
是否还有其他“优雅”的方法来重置指向malloc给定的ram的第一个元素的指针,而不是在分配之后立即复制其值?
答案 0 :(得分:3)
在这种情况下,您可以使用rst
进行指针调整,而不必理会mem
。
*rst++ <<= 3;
// etc...
如果您所做的修改作为一个功能单元有意义,那么您可以将代码封装在一个函数调用中,而避免完全声明rst
。
extern void adjust_mem(uint8_t *);
uint8_t* mem = malloc(10);
adjust_mem(mem);