![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Dov |
|
||||||||||||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 15 Всего: 88 |
INHazeR, а ты попробуй адрес указателя передавать. Может чего и выйдет. Насколько я понял, у тебя есть какой-то указатель. Например, есть такой код:
Добавь ф-цию:
и вызывай так:
Добавлено через 4 минуты и 35 секунд Если это С++, то можно ещё так:
-------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
||||||||||||
|
|||||||||||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
ты наверное имел ввиду operator new (100) (иначе, просто не скомпилируется, имхо)... тогда нужен ни delete, ни delete [], а operator delete... ![]()
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
Anikmar |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
Ну да, пример не совсем удачный, я забыл, что там надо operator добавлять
Истественно. Я просто про сторонню.ю функцию. Которая написана кем-то другим, и по возвращаемому значению сложно определить одиночный это указатель или массив. Допустим, функция достаточно важная, самому писать ее долго, как она выделяет память неясно, но ее надо освободить. Вот я и прикидываю, есть ли способ это определить имея на руках только указатель... |
||||
|
|||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
Ваши слова - да Богу в уши. Помню времена MS-DOS. Книжка у меня была - Описание недокументированных прерываний DOS. И ведь куча программ была, которые этим пользовались. ИМХО Это одна из дырок стандарта. Думаю ее будут потом исправлять. Если нужно держать связку операторов четко - должен быть способ узнать тип применяемого оператора. Если это пишет один человек - ерунда, сам должен следить. А вот если баг в описании чужой функции, да еще исходник недоступен. Тут ведь совместимость на двоичном уровне идет. Ладно, вода все это. Вот когда такая ситуация возникнет - будем конкретно ее обсуждать. Сейчас у меня таких проблем нет, утечка памяти достаточно редкий случай - благо на этот счет инструментария разного достаточно. |
|||
|
||||
v_nikolaev |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 6.5.2007 Репутация: нет Всего: нет |
а почему не написать красивее?
|
||||||
|
|||||||
Fazil6 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
||||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
ну не совершенно... всего-то p на один эл-т дальше будет сдвинут...
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
v_nikolaev |
|
|||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 6.5.2007 Репутация: нет Всего: нет |
насколько я понимаю, разница тут только в том, что я сделал лишний раз ++. *p++ - сначала происхоит присвоение в нужную память, а потом ++ к указателю. archimed7592 ![]() Это сообщение отредактировал(а) v_nikolaev - 24.5.2007, 11:17 |
|||
|
||||
Fazil6 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
||||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Fazil6,
![]() ты согласен, что *p++ эквивалентно *(p++)? вытекает из приоритетов операторов... Это сообщение отредактировал(а) archimed7592 - 24.5.2007, 11:22 -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
Fazil6 |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
ага, разница невелика (всего один элемент) и можно на эту разницу забить? Вобщем действительно , какая уж разница какой элемент массива менять... Особенно когда p на последний элемент указывает. Добавлено @ 11:24
согласен, тока в примере *p++ = 5 и *(++p) = 5 , а это не эквивалентно Это сообщение отредактировал(а) Fazil6 - 24.5.2007, 11:25 |
||||
|
|||||
archimed7592 |
|
||||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
никто не говорит, что забить можно... просто в данном конкретном случае никакой погоды это не делает... тем более, что, с тем же успехом, в последней строке можно не писать ++...
просто этот сдвиг не означает, что код делает совершенно другое...
блин, эквивалентны вот эти два примера в целом... а о построчной эквивалентности никто не утверждал
Это сообщение отредактировал(а) archimed7592 - 24.5.2007, 11:30 -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
||||
|
|||||
Fazil6 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
||||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
я отлично понял, что ты хотел сказать... вопрос только к чему ты это сказал?
![]() -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |