Oberon space
General Category => Общий раздел => Тема начата: Jordan от Ноябрь 30, 2012, 04:43:04 pm
-
В реализации компиляторов си, нет проверки границ массива, даже статического.
Данную проверку невозможно реализовать? К примеру размер статического массива вычислить можно. С динамическим массивом поможет функция msize. Почему в компиляторах не реализуют данные проверки?
-
В реализации компиляторов си, нет проверки границ массива, даже статического.
Данную проверку невозможно реализовать? К примеру размер статического массива вычислить можно. С динамическим массивом поможет функция msize. Почему в компиляторах не реализуют данные проверки?
В тьюринг-полном языке невозможно на этапе компиляции в общем случае проверить выход за границу даже статического массива.
-
В реализации компиляторов си, нет проверки границ массива, даже статического.
А динамические проверки в Си есть. По крайней мере в некоторых реализациях при некоторых опциях.
Вообще, зачем Си, если есть C++? ;-)
-
Так в книжках по языкам и пишут, язык си, с++ не проверяет границы массива, и далее будьте внимательны не допускайте такие ошибки, сразу становится спокойно. :o
А в каких компиляторах?
Я имею ввиду проверку как в паскале.
-
Так в книжках по языкам и пишут, язык си, с++ не проверяет границы массива, и далее будьте внимательны не допускайте такие ошибки, сразу становится спокойно. :o
Если кто-то в С++ использует Сишные недомассивы, то он сам себе злобный буратин.
А в каких компиляторах?
Я имею ввиду проверку как в паскале.
Ну, как минимум я подобное помню в вижуал-штудии в debug-mode.
Кстати, а как в Паскале? В каком паскале? Скажем в Обероне проверок нет :-)
-
Так в книжках по языкам и пишут, язык си, с++ не проверяет границы массива, и далее будьте внимательны не допускайте такие ошибки, сразу становится спокойно. :o
Если кто-то в С++ использует Сишные недомассивы, то он сам себе злобный буратин.
А в каких компиляторах?
Я имею ввиду проверку как в паскале.
Ну, как минимум я подобное помню в вижуал-штудии в debug-mode.
Кстати, а как в Паскале? В каком паскале? Скажем в Обероне проверок нет :-)
турбо паскаль, фри паскаль, при ошибке выдаёт в каком файле в какой строке ошибка. Для скорости проверку можно отключить.
В конкретном компиляторе нет или в стандарте языка?
-
В конкретном компиляторе нет или в стандарте языка?
У Оберона нет стандарта :-) Есть сообщение о языке. Там про границы массивов нет ничего. Также как и про деление на ноль например.
Впрочем, в мире паскаля и производных (кроме Ады) довольно наплевательски к стандартам относятся даже если они есть :-) Вот какому стандарту соответствует турбо-паскаль? ;-)
-
В реализации компиляторов си, нет проверки границ массива, даже статического.
Данную проверку невозможно реализовать? К примеру размер статического массива вычислить можно. С динамическим массивом поможет функция msize. Почему в компиляторах не реализуют данные проверки?
В тьюринг-полном языке невозможно на этапе компиляции в общем случае проверить выход за границу даже статического массива.
;D ;D ;D ;D ;D
-
Выправленный Си существует. Очевидно же это Объерон! ;D
-
Выправленный Си существует. Очевидно же это Объерон! ;D
о_О А разве это не Cyclone (http://cyclone.thelanguage.org/)?
-
Выправленный Си существует. Очевидно же это Объерон! ;D
о_О А разве это не Cyclone (http://cyclone.thelanguage.org/)?
Который умер :-)
-
Выправленный Си существует. Очевидно же это Объерон! ;D
о_О А разве это не Cyclone (http://cyclone.thelanguage.org/)?
Который умер :-)
И что с того? Что мешает кому-надо оживить его? ))