Как сбросить указатель - PullRequest
0 голосов
/ 14 февраля 2019

После игры с указателем, заданным malloc.

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

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

Есть ли какой-либо другой "элегантный" способ сброса указателя на первый элемент памяти, заданный malloc, чем ранее скопированное его значениетолько после выделения?

1 Ответ

0 голосов
/ 14 февраля 2019

В этом конкретном случае вы можете использовать rst для выполнения настроек указателя и оставить mem в покое.

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

Если изменения, которые вы вносите, имеют смысл как функциональная единица, тоВы можете инкапсулировать код в вызове функции и вообще не объявлять rst.

extern void adjust_mem(uint8_t *);

uint8_t* mem = malloc(10);

adjust_mem(mem);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...