23 / 15 / 7
Регистрация: 02.12.2010
Сообщений: 48
|
||||||
1 | ||||||
Инкремент указателя25.12.2010, 03:31. Показов 5064. Ответов 3
Метки нет (Все метки)
---------------------- 0xa41240 0xa41258 0xa41270 0xa41288 0xa412a0 0xa412b8 0xa412d0 0xa412e8 0xa41300 0xa41318 0xa41240 2 0xa4124c 54408397 0xa41258 2 12 ------------------ Т.о., размер объекта класса Student == 12 байт ( 3 по int) Инкрементируюя tmp, указатель перемещается на 12 байт. Но при создании массива каждый элемент расположен через 24 байта. Поделитесь знаниями, пожалуйста.
0
|
25.12.2010, 03:31 | |
Ответы с готовыми решениями:
3
Инкремент указателя на указатель Почему увеличение указателя на sizeof(тип) не тождественно инкременту этого же указателя? Создание указателя на экземпляр класса, описанного после объявления указателя Преобразование кода без указателя в код с использованием указателя |
4769 / 2579 / 892
Регистрация: 29.11.2010
Сообщений: 5,581
|
||||||
25.12.2010, 03:57 | 2 | |||||
Вы сдвигаете на размер указателя.
Вот так более очевидный результат?
1
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|
25.12.2010, 05:49 | 3 |
Сообщение от michurinnn
в C malloc() слева от возвращаемого блока хранит информацию о его размере, но сам блок может быть также больше и с правой стороны (небольшие количества байт занимают один крупный фрагмент) поэтому тебе возвращается память, которая гарантированно может хранить столько, сколько ты запрашивал а вот эта инфа, она уже нужна, чтобы free правильно выполнялась, delete в C++ потому что память после освобождения опять помечается доступной для использования
1
|
23 / 15 / 7
Регистрация: 02.12.2010
Сообщений: 48
|
|||||||||||
25.12.2010, 06:37 [ТС] | 4 | ||||||||||
Добавлено через 29 минут И чтобы освободить память:
0
|
25.12.2010, 06:37 | |
25.12.2010, 06:37 | |
Помогаю со студенческими работами здесь
4
Как сделать функцию от указателя на класс и указателя на метод? Возвращение неконстантного указателя из константного указателя на строку В чём отличие константного указателя и указателя на константу? Написать обработчик исключений ситуации при преобразовании указателя на класс B до указателя на абстрактный класс А ... Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |