Тема: век живи, век учись...

Ответить в теме
Страница 2 из 4 ПерваяПервая 1 2 3 4 ПоследняяПоследняя
Показано с 21 по 40 из 67
  1. Вверх #21
    Не покидает форум Аватар для Ull9
    Пол
    Мужской
    Адрес
    Мюнхен
    Сообщений
    19,028
    Репутация
    1490
    Цитата Сообщение от Guffy Посмотреть сообщение
    если бы это было верно
    free (p);
    if (p==0) // здесь возникает UB
    это бы подразумевало, что free модифицирует содержимое переменной p
    откуда такой вывод?


  2. Вверх #22
    Постоялец форума Аватар для Guffy
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    51
    Сообщений
    1,356
    Репутация
    256
    переменная р - это для наших, привычных, платформ всего лишь 4 байта (ну или 8). странно было бы если б передав копию этих 4х байт их нельзя было б после этого прочитать. тем более оказывается что якобы
    free (p);
    if (p==0) // здесь возникает UB
    нельзя, а
    free (p);
    p=0;
    можно. читать нельзя, писать можно. цирк.

  3. Вверх #23
    Не покидает форум Аватар для Ull9
    Пол
    Мужской
    Адрес
    Мюнхен
    Сообщений
    19,028
    Репутация
    1490

  4. Вверх #24
    Не покидает форум Аватар для Ull9
    Пол
    Мужской
    Адрес
    Мюнхен
    Сообщений
    19,028
    Репутация
    1490
    Цитата Сообщение от Guffy Посмотреть сообщение
    переменная р - это для наших, привычных, платформ всего лишь 4 байта (ну или 8). странно было бы если б передав копию этих 4х байт их нельзя было б после этого прочитать. тем более оказывается что якобы
    free (p);
    if (p==0) // здесь возникает UB
    нельзя, а
    free (p);
    p=0;
    можно. читать нельзя, писать можно. цирк.
    и тем не менне это так. вот наконец то и ты оценил этот прикол.

  5. Вверх #25
    Постоялец форума Аватар для Guffy
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    51
    Сообщений
    1,356
    Репутация
    256
    нет, я его не оценил, ты несколько опережаешь события. сначала нужно в него поверить

  6. Вверх #26
    Не покидает форум Аватар для Ull9
    Пол
    Мужской
    Адрес
    Мюнхен
    Сообщений
    19,028
    Репутация
    1490
    ну тут уже вопрпс философский
    что тебе нужно чтоб "поверить"?

    допустим верю ли я в существование австралии?
    я там никогда не был, и своими глазами ее не видел, и тем не менее я в существование австралии верю
    а ты?

  7. Вверх #27
    Постоялец форума Аватар для Guffy
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    51
    Сообщений
    1,356
    Репутация
    256
    ничего убеждающего там нет. всего лишь говорится о том, любой шаг в сторону памяти - через дескриптор. и что дескриптор содержит размер куска памяти. и что попадание в правильный диапазон контролируется аппаратно и отключить контроль нельзя. ну и что же?
    подразумевается что free "убивает" дескриптор и его нельзя прочитать?
    а записать видимо можно, да?

  8. Вверх #28
    Не покидает форум Аватар для Ull9
    Пол
    Мужской
    Адрес
    Мюнхен
    Сообщений
    19,028
    Репутация
    1490
    ну вот тебе собственно еще.
    http://groups.google.de/group/comp.l...02a893c28d22f1
    цитата:
    ______________
    he Intel C compiler. Ca 1990. When compiling with 48 bit pointers, with
    an underlying real-time kernal.

    > And how exactly it "did not work"?

    Something along the lines of:

    free( p ) ;
    if ( p == NULL ) // ...

    for example, would cause a system crash.
    ____________

    ну что австралия существует?

  9. Вверх #29
    Постоялец форума Аватар для Guffy
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    51
    Сообщений
    1,356
    Репутация
    256
    ну а почему там так? да потому, что там маллок выделяет память сегментами, а фри, в частности, убивает дескриптор сегмента. видимо указатель содержит как сегмент так и смещение. и сегмент становиться невалидным. ну так это ж изврат, зачем же так себя насиловать.
    никто, я думаю, тут с таким извратом не сталкивался и дай бог не столкнется
    зыЖ и если такие извраты узаконивают (а точнее прописывают такую расплывчатую формулировку,
    что попустительствуют таким нехорошим редискам) - так от этого еще хуже

  10. Вверх #30
    Не покидает форум Аватар для Ull9
    Пол
    Мужской
    Адрес
    Мюнхен
    Сообщений
    19,028
    Репутация
    1490
    Цитата Сообщение от Guffy Посмотреть сообщение
    никто, я думаю, тут с таким извратом не сталкивался и дай бог не столкнется
    во первых кто то уже сталкивался, конкретно посмотри в ссылке стоит имя и фамилия человека. того который сталкивался.

    далее, ну что это за аргументация такая
    Цитата Сообщение от Guffy Посмотреть сообщение
    ... и дай бог не столкнется
    зачем нам вспоминать Бога, когда есть стандарт в котором черным по белому написано.

    хотя еще раз говорю, вопрос верю не верю, "дай бог" это вопрос философский

    для меня это прикол был и остается, я лично с этим никогда не сталкивался. но интерес чисто академический у меня к таким вещам есть.
    и это для меня прикол.

    Бог здесь не причем.
    Последний раз редактировалось Ull9; 03.12.2007 в 15:58.

  11. Вверх #31
    Постоялец форума Аватар для Guffy
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    51
    Сообщений
    1,356
    Репутация
    256
    ну, не надо придираться к оборотам речи.
    если некие товарищи превращают указатель из простого типа в комплексный, и смешивают понятие виртуальной памяти и кучи, навязывая маллоку (суть менеджеру кучи) поведение аллокатора виртуальной памяти - то кто им злобный буратина кроме их самих. а авторы стандарта потакают.

  12. Вверх #32
    Не покидает форум Аватар для Ull9
    Пол
    Мужской
    Адрес
    Мюнхен
    Сообщений
    19,028
    Репутация
    1490
    нну так как? твои сомнения о том что такое существует и такое законно с точки зрения стандарта, сняты?


  13. Вверх #33
    Постоялец форума Аватар для Guffy
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    51
    Сообщений
    1,356
    Репутация
    256
    что ж, можно и зайца научить курить. а что с того?
    ты б привел сразу, что "вот так и так" - есть такая двусмысленная фраза в стандарте и "оказываеццо!" нашлись таки оригиналы, которые подвесили дескриптор сегмента в указатель, превратив его в комплексный тип.
    так нет же - хочешь чтоб простые люди, привыкшие к компиляторам, написанным (и к счастью) вменяемыми разработчиками вот так, по творим 2 строкам дошли до такой же оригинальной реализации указателей?
    на двусмысленности законов живут целые кланы - юристы, адвокаты и т.д. теперь, видимо не только они.

  14. Вверх #34
    Не покидает форум Аватар для Ull9
    Пол
    Мужской
    Адрес
    Мюнхен
    Сообщений
    19,028
    Репутация
    1490
    я хочу и хотел лишь одного. попался мне на глаза прикол. его здесь рассказал.

    теоретически, кстати, нельзя исключать, что тебе или мне, придется на некой платформе работать где так и будет.
    или что следующая версия gcc будет так себя вести.
    единственное чему жизнь учит - никогда не говори никогда.

    но это уже философия

  15. Вверх #35
    Частый гость Аватар для homo ludens
    Пол
    Мужской
    Сообщений
    751
    Репутация
    141
    ну, если в той дискуссии, на которую ты ссылаешься пример кода выглядит так как они привели
    Something along the lines of:

    free( p ) ;
    if ( p == NULL ) // ...
    то эту дискуссию можно отправлять туда же куда и переписку Энгельса с Каутским. С Интель-компилятором я работал, в таких глюках его не замечал. Хотя, даже если такой глюк и есть - это не повод объявлять его фичей.

    Пусть мне кто-нибудь покажет воспроизводимый пример такой "фичи" + мнение разработчика этого компилятора, что это не баг а именно фича. Причем компайлер/библиотека должны пройти соответствующие conformance testing. Ибо стандарт это не только строчки документа но и набор тестов.

    А вообще конечно прикольно, оказывается можно и так трактовать стандарты...
    Может в ихний комитет написать, вопрос задать?
    The future is already here - it is just unevenly distributed. (c) W. Gibson

  16. Вверх #36
    Не покидает форум Аватар для Ull9
    Пол
    Мужской
    Адрес
    Мюнхен
    Сообщений
    19,028
    Репутация
    1490
    да я тоже работал с интель компилятором,
    и вопрос не лежит в плоскости фича - глюк.

    это законная реализация компилятора. так компилятор писать можно и это в соответствии со стандартом. точка.

  17. Вверх #37
    Постоялец форума Аватар для Guffy
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    51
    Сообщений
    1,356
    Репутация
    256
    Цитата Сообщение от homo ludens Посмотреть сообщение
    Пусть мне кто-нибудь покажет воспроизводимый пример такой "фичи" + мнение разработчика этого компилятора, что это не баг а именно фича.
    для такой "фичи" тут не только "поддержка" компилятора нужна, но и платформы. там, возможно, не флет-модель памяти как я понимаю.

  18. Вверх #38
    Не покидает форум Аватар для Ull9
    Пол
    Мужской
    Адрес
    Мюнхен
    Сообщений
    19,028
    Репутация
    1490
    Цитата Сообщение от Guffy Посмотреть сообщение
    для такой "фичи" тут не только "поддержка" компилятора нужна, но и платформы. там видимо не флет-модель памяти как я понимаю
    совершенно верно, тут не компилятор главное, а memory model.
    это платформозависимая вешь.

  19. Вверх #39
    Постоялец форума Аватар для Guffy
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    51
    Сообщений
    1,356
    Репутация
    256
    ну так прописали бы в стандарте
    free(p)
    p=NULL; //should be cleared before read
    if(p)
    {...}
    и шабаш. помянули б сегментную модель памяти - и все понятно. нет, "изгаляюццо"...

  20. Вверх #40
    Не покидает форум Аватар для Ull9
    Пол
    Мужской
    Адрес
    Мюнхен
    Сообщений
    19,028
    Репутация
    1490
    Гугги, не валяйте дурака,
    стандарт филологически и концептуально не может писатся так как вы предлагаете.

    еще раз говорю прикол он и в африке прикол.


Ответить в теме
Страница 2 из 4 ПерваяПервая 1 2 3 4 ПоследняяПоследняя

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения