В C, я объявил область памяти, как это:Как определить, где я находится в массиве с арифметикой указателя?
int cells = 512;
int* memory = (int*) malloc ((sizeof (int)) * cells);
И я ставлю себя более или менее в середине
int* current_cell = memory + ((cells/2) * sizeof (int));
Мой вопрос, в то время как я увеличиваю *current_cell
, как я знаете, достиг ли я конца выделенной области памяти?
Вы уверены, что это не ячейки * sizeof int? это было моим сомнением. –
@klez: Конечно нет '* sizeof()'. При указании 'type *' pointer '(type + N)' указывает на N-й элемент - компилятор выполнит умножение '* sizeof (Type). – sharptooth
Это не так. Когда вы используете + или - с указателем и интегральным типом, он добавляет или вычитает * элементы *, а не байты. –