0 / 0 / 2
Регистрация: 03.01.2013
Сообщений: 113
|
||||||
1 | ||||||
pointer - pointer02.06.2013, 21:51. Показов 1394. Ответов 6
Метки нет (Все метки)
Добавлено через 6 часов 38 минут Ребят, помогите разобраться. Голову сломал пока пытался понять. Печально то, что так и не дошло до меня. К примеру, указатель имеет адрес массива + смещен на 5 позицию(учитывая нуль). Каждая позиция это 4 байта (в случае типа int). Массив из 8 элементов = 32 байта. По идее происходит следующее: 0х46е010(массив + смещение) - 0х46е000 (адрес массива) = 0х000010. (Адреса взяты из своего ПК.) Остается 10. Каким образом программа показывает 5 элемент массива? Если я правильно понимаю,то 10, это 10 бит, т.е. 2.5 элемента массива int. Полез я наверное куда не следовало и запутался окончательно. : ) Жаль что автор книги оставил без внимания этот момент.
0
|
02.06.2013, 21:51 | |
Ответы с готовыми решениями:
6
Shared_ptr - stored pointer, owned pointer delete[] *pointer vs. delete pointer и утечка памяти Null pointer Pointer. Int * |
Псевдослучайный
1946 / 1145 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
|
|
02.06.2013, 21:59 | 3 |
Результатом вычитания указателей будет количество элементов соответствующего типа между ними. А память таки адресуется по байтам, а не по битам.
1
|
0 / 0 / 2
Регистрация: 03.01.2013
Сообщений: 113
|
|
02.06.2013, 22:37 [ТС] | 4 |
Спасибо Jupiter. Единственный момент для меня не понятен.
((0х46е000 + 5 * 4) - 0х46е000) = 20 байт это 4 инта А мой ПК показывает адреса: 0х46е010 - 0х46е000 = 10 байт. Хотя указатель стоит на 5 элементе массива. NoMasters, перечитал свое сообщение. Вижу что написал про биты, а считал байты. Мозги отказываются нормально работать)) Спасибо вам.
0
|
Заблокирован
|
|
02.06.2013, 22:59 | 7 |
да. он просто сбился с индексами. 15 валяется в 3 ем по счету "боксе", т.е. в 4-м фактически.
0
|
02.06.2013, 22:59 | |
02.06.2013, 22:59 | |
Помогаю со студенческими работами здесь
7
Smart pointer Pointer. Char* Smart pointer vector<pointer>::iterator Свой auto pointer Invalid pointer operation Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |