Я знаю, как сделать арифметику указателя с помощью массивов, но как я могу сделать арифметику указателей без них?Как выполнить арифметическую операцию по указателю на пустоту
Для моего текущего назначения у меня есть указатель на пустое место на адрес памяти. У меня есть size_t
, который хранит размер в мегабайтах.
Я пытаюсь добавить половину мегабайта в указатель, чтобы найти адрес памяти x/2
мегабайт от указателя.
Так
void *ptr = malloc(size_t x)
void *ptr2 = ptr+x/2;
но компилятор говорит, что эти типы данных несовместимы. для чего нужен правильный синтаксис?
'malloc (size_t x)' это не будет компилироваться. –
извините, это больше скелетного кода. исходный указатель предоставляется мне и связан с началом области памяти, заданной malloc. Я хочу пройти эту память и сделать указатель на полпути через нее, или половину размера x. –
компилятор дает мне ошибку во время второй операции - когда я пытаюсь добавить размер в мегабайтах к указателю пустоты. –