Здравствуйте, Hasmik, Вы писали:
K>>А что, для "нормальных" компиляторов отдельный стандарт существует? H>Стандарт один, но VC++ 6.0 ему не соответствует.
Ну я в стандарте как-то не нашёл, что delete без [] должен корректно массивы удалять.
Re[9]: Почему 10000 ищут работу и почти столько же ищут рабо
Здравствуйте, Kemsky, Вы писали:
K>Здравствуйте, Hasmik, Вы писали:
K>>>А что, для "нормальных" компиляторов отдельный стандарт существует? H>>Стандарт один, но VC++ 6.0 ему не соответствует.
K>Ну я в стандарте как-то не нашёл, что delete без [] должен корректно массивы удалять.
delete c [] должен.
Re[11]: Почему 10000 ищут работу и почти столько же ищут раб
Здравствуйте, Hasmik, Вы писали:
H>Здравствуйте, superman, Вы писали:
S>>Здравствуйте, Hasmik, Вы писали:
H>>>Удаление массива оператором delete — это по определению delete[].
S>>не понял? по какому такому определению? подтвердите пожалуста это утверждение документально H>If the allocated type is an array type, the allocation function’s name is operator new[] and the deallocation function’s name isoperator delete[]. H>ISO/IEC 14882 5.3.4.8
Я перечитал указанный пункт стандарта, ИМХО, ваш перевод не отвечает тому что там написанно. Как на меня там сказанно выделяйте и удаляйте одиночные объекты такими операторами, а массивы такими.
Re[10]: Почему 10000 ищут работу и почти столько же ищут раб
Здравствуйте, superman, Вы писали:
S>Здравствуйте, Hasmik, Вы писали:
H>>Здравствуйте, superman, Вы писали:
S>>>Здравствуйте, Hasmik, Вы писали:
H>>>>Удаление массива оператором delete — это по определению delete[].
S>>>не понял? по какому такому определению? подтвердите пожалуста это утверждение документально H>>If the allocated type is an array type, the allocation function’s name is operator new[] and the deallocation function’s name isoperator delete[]. H>>ISO/IEC 14882 5.3.4.8
S>Я перечитал указанный пункт стандарта, ИМХО, ваш перевод не отвечает тому что там написанно. Как на меня там сказанно выделяйте и удаляйте одиночные объекты такими операторами, а массивы такими.
Это не перевод, а подлинник.
Re[9]: Почему 10000 ищут работу и почти столько же ищут рабо
Hasmik пишет: > > Удаление *массива *оператором delete — это по определению delete[].
Можно узнать, какой компилятор этому соответствует? watcom/vc/bcc -- не
соответствуют.
--
С уважением, Сергей Филиппов.
ps-at-azs-ru
Posted via RSDN NNTP Server 2.0
Re[10]: Почему 10000 ищут работу и почти столько же ищут раб
H>>>>>Удаление массива оператором delete — это по определению delete[].
S>>>>не понял? по какому такому определению? подтвердите пожалуста это утверждение документально H>>>If the allocated type is an array type, the allocation function’s name is operator new[] and the deallocation function’s name isoperator delete[]. H>>>ISO/IEC 14882 5.3.4.8
S>>Я перечитал указанный пункт стандарта, ИМХО, ваш перевод не отвечает тому что там написанно. Как на меня там сказанно выделяйте и удаляйте одиночные объекты такими операторами, а массивы такими.
H>Это не перевод, а подлинник.
Вот это подлинник?????
H>>>>>Удаление [b]массива оператором delete — это по определению delete[].[/b]
Re[12]: Почему 10000 ищут работу и почти столько же ищут раб
Речь шла о вопросе на устном интервью. И как понять, что интервьюер спрашивает о delete или о delete[]? Но я не думаю, что он подозревает меня в незнании азбучных истин, и понимаю так, что он спрашивает о delete[].
Вот еще цитата из Страуструпа, Специальное издание стр. 250
The destructor for each constructed element of an array is invoked when that array is destroyed.
This is done implicitly for arrays that are not allocated using n e w . Like C, C++ doesn’t distinguish
between a pointer to an individual object and a pointer to the initial element of an array (§5.3).
Consequently, the programmer must state whether an array or an individual object is being deleted.
Re[12]: Почему 10000 ищут работу и почти столько же ищут раб
Здравствуйте, superman, Вы писали:
S>Здравствуйте, Hasmik, Вы писали:
H>>Здравствуйте, superman, Вы писали:
S>>>Здравствуйте, Hasmik, Вы писали:
H>>>>Удаление массива оператором delete — это по определению delete[].
S>>>не понял? по какому такому определению? подтвердите пожалуста это утверждение документально H>>If the allocated type is an array type, the allocation function’s name is operator new[] and the deallocation function’s name isoperator delete[]. H>>ISO/IEC 14882 5.3.4.8
S>Я перечитал указанный пункт стандарта, ИМХО, ваш перевод не отвечает тому что там написанно. Как на меня там сказанно выделяйте и удаляйте одиночные объекты такими операторами, а массивы такими.
Когда программист хочет удалить массив, он использует delete[]. Я говорю в этом смысле. Во всех учебниках так написано. Но тут утверждалось, что для некоторых типов объектов это неправильно, или недостаточно. Хотя как правильно, непонятно.
Re[13]: Почему 10000 ищут работу и почти столько же ищут раб
Здравствуйте, Hasmik, Вы писали:
H>Речь шла о вопросе на устном интервью. И как понять, что интервьюер спрашивает о delete или о delete[]? Но я не думаю, что он подозревает меня в незнании азбучных истин, и понимаю так, что он спрашивает о delete[]. H>Вот еще цитата из Страуструпа, Специальное издание стр. 250
H>The destructor for each constructed element of an array is invoked when that array is destroyed. H>This is done implicitly for arrays that are not allocated using n e w . Like C, C++ doesn’t distinguish H>between a pointer to an individual object and a pointer to the initial element of an array (§5.3). H>Consequently, the programmer must state whether an array or an individual object is being deleted.
Я уже понял, что мы с вами говорим о разных вещах
Однако, по-моему вы придераетесь к словам.. на усном собеседовании данный вопрос мог бы быть сформулирован четче,
Maxas же задавал вопрос в форуме и чётко написал про оператор delete (овсем без скобочек) для массива.
В любом случае полагаю что наша "Дискусия" себя исчерпала
Re[13]: Почему 10000 ищут работу и почти столько же ищут раб
H>Когда программист хочет удалить массив, он использует delete[]. Я говорю в этом смысле. Во всех учебниках так написано. Но тут утверждалось, что для некоторых типов объектов это неправильно, или недостаточно. Хотя как правильно, непонятно.
я понял, понял уже о чем Вы.
Опять же по-моему здесь такого не утверждалось речь шла о delete (без каких либо квадратных скобок) для массива во всяком случае я так прочитал..
Однако чего же вы наезжали на нестандартность VC++6.0?
Я описывал именно случай использования неподходящего оператора delete. (delete[] для памяти выделенной new_без_скоббочек)
по-моему в данном моменте поведение VC никак не расходится со стандартом
Re[14]: Почему 10000 ищут работу и почти столько же ищут раб
Здравствуйте, superman, Вы писали:
S>Здравствуйте, Hasmik, Вы писали:
H>>Речь шла о вопросе на устном интервью. И как понять, что интервьюер спрашивает о delete или о delete[]? Но я не думаю, что он подозревает меня в незнании азбучных истин, и понимаю так, что он спрашивает о delete[]. H>>Вот еще цитата из Страуструпа, Специальное издание стр. 250
H>>The destructor for each constructed element of an array is invoked when that array is destroyed. H>>This is done implicitly for arrays that are not allocated using n e w . Like C, C++ doesn’t distinguish H>>between a pointer to an individual object and a pointer to the initial element of an array (§5.3). H>>Consequently, the programmer must state whether an array or an individual object is being deleted.
S>Я уже понял, что мы с вами говорим о разных вещах
S>Однако, по-моему вы придераетесь к словам.. на усном собеседовании данный вопрос мог бы быть сформулирован четче, S>Maxas же задавал вопрос в форуме и чётко написал про оператор delete (овсем без скобочек) для массива.
S>В любом случае полагаю что наша "Дискусия" себя исчерпала
Все равно было понято как со скобочками. И не только мной.
Кто писал "Я использовал оператор delete[] для памяти ваыделенной ператором new, на VC++ 6.0. При чем (_!_) наступала совсем не сразу а через несколько часов работы."?
Pyromancer
если ты удалишь массив интов через delete- ничего страшного, а если это будут объекты то не вызовутся правильно деструкторы и последствия будут в зависимости от того,что за объекты были: или ничего или утечёт память или вообще(_|_)
Удаление массива интов через delete вызовет утечку памяти, значит тоже имелся в виду delete[]?
Re[15]: Почему 10000 ищут работу и почти столько же ищут раб
Здравствуйте, Hasmik, Вы писали:
H>Кто писал "Я использовал оператор delete[] для памяти ваыделенной ператором new, на VC++ 6.0. При чем (_!_) наступала совсем не сразу а через несколько часов работы."?
Да признаю, это написал именно я, я действительно использовал из-за очепатки, и неправильного дизайна проги (память освобождалась уж очень далеко от того места где выделялась) оператор delete[]_со_скобочками для объекта созданного new_совсем_без_скобочек.
это был контр аргумент ибо из вашего поста про delete по умолчанию я ошибочно понял что вы настаиваете на корректности и стандартности кода типа
int* p = new int [10];
delete p;
H>Pyromancer H>
H>если ты удалишь массив интов через delete- ничего страшного, а если это будут объекты то не вызовутся правильно деструкторы и последствия будут в зависимости от того,что за объекты были: или ничего или утечёт память или вообще(_|_)
H>Удаление массива интов через delete вызовет утечку памяти, значит тоже имелся в виду delete[]?
нет, по-моему автор имеет ввиду именно delete_совсем_без_скобочек для массива, т.е. см код выше
Однако наша дискуссия по-моему лишняя иллюстрация того что подобный вопрос заданный на собеседовании мало о чем говорит
Re: Почему 10000 ищут работу и почти столько же ищут работни
IMHO, дело в том, что если есть 1000$ вакансия, то это скорее всего обычный "кодер" — т.е ему говорят: " вот массив, его нужно отсортировать". Человек подходящий под эту вакансию садится и сортирует его хоть пузырьком. Ведущий программист его потом будет пинать, вопитывать. Но свои 1000$ этот человек отработает и получит. Если на эту должность взять "эксперта", он будет постоянно умничать, приводить свои суждения о сложности алогритма, использовать STL с собственнми предикатами, писать код на ассемблере оптимизируя его или заявит, что С++ в этом случае подходит хуже, чем питон. Короче, работадтелю от "эксперта" будет только головная боль, при том что пользы — на те же 1000$. И даже по короткому телефонному собеседованию можно понять какие у человека "понты". Если у них есть вакансия по курче, соответсвующая уровню, возможно, они предложат пособеседоваться на этот предмет, но скорее всего, просто вежливо попрощаются.
Да пребудет с тобою сила
Re[16]: Почему 10000 ищут работу и почти столько же ищут раб
Здравствуйте, superman, Вы писали: S>Однако наша дискуссия по-моему лишняя иллюстрация того что подобный вопрос заданный на собеседовании мало о чем говорит
Вопросы должны быть на уровне книги Саттера, где синтаксически корректный код, но надо сказать, в чем он неэффективен.
Re[17]: Почему 10000 ищут работу и почти столько же ищут раб
Здравствуйте, TarasCo, Вы писали:
TC>IMHO, дело в том, что если есть 1000$ вакансия, то это скорее всего обычный "кодер" — т.е ему говорят: " вот массив, его нужно отсортировать". Человек подходящий под эту вакансию садится и сортирует его хоть пузырьком. Ведущий программист его потом будет пинать, вопитывать. Но свои 1000$ этот человек отработает и получит. Если на эту должность взять "эксперта", он будет постоянно умничать, приводить свои суждения о сложности алогритма, использовать STL с собственнми предикатами, писать код на ассемблере оптимизируя его или заявит, что С++ в этом случае подходит хуже, чем питон. Короче, работадтелю от "эксперта" будет только головная боль, при том что пользы — на те же 1000$. И даже по короткому телефонному собеседованию можно понять какие у человека "понты". Если у них есть вакансия по курче, соответсвующая уровню, возможно, они предложат пособеседоваться на этот предмет, но скорее всего, просто вежливо попрощаются.
Глупость говрите. ИМХО Класс видно и в большом и в малом. Эксперт_без_кавычек не будет там где не надо умничать, и писать код на асемблере, там где не надо.
что вы имеете против STL с собственными предикатами?
Re[3]: Почему 10000 ищут работу и почти столько же ищут рабо
S>Глупость говрите. ИМХО Класс видно и в большом и в малом. Эксперт_без_кавычек не будет там где не надо умничать, и писать код на асемблере, там где не надо.
S>что вы имеете против STL с собственными предикатами?
Чтобы отсортировать массив, это и надо применять. Если это не массив чисел. Если массив чисел, то без бредикатов. Если он будет писать пузырьками, надо предложить подучиться, почитать Джоссатиса. Вызвать через 2 месяца.
Re[2]: Почему 10000 ищут работу и почти столько же ищут рабо