The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Релиз командного интерпретатора Bash 4.2"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Подсказка: Для контроля за появлением новых сообщений - перед выходом жмите "Пометить прочитанным".
. "Релиз командного интерпретатора Bash 4.2" +/
Сообщение от pavlinux (ok), 22-Фев-11, 03:27 

2.16    Вот изящный трюк: если я пишу

        int realarray[10];
        int *array = &realarray[-1];,

    то теперь можно    рассматривать "array" как массив, у которого индекс
    первого    элемента равен единице.

О:      Хотя этот прием внешне привлекателен (и использовался в старых
        изданиях книги "Numerical Recipes in С"), он не удовлетворяет
        стандартам С. Арифметические действия над указателями определены лишь
        тогда, когда указатель ссылается на выделенный блок памяти или на
        воображаемый завершающий элемент, следующий сразу за блоком. В
        противном случае поведение программы не определено, _даже если
        указатель не переназначается_. Код, приведенный выше, плох тем,
        что при уменьшении смещения может быть получен неверный адрес
        (возможно, из-за циклического перехода адреса при пересечении
        границы сегмента).

        Смотри: ANSI Разд.3.3.6 c. 48, Rationale Разд.3.2.2.3 c. 38;
        K&R II  Разд.5.3 c. 100, Разд.5.4 c. 102-3, Разд.A7.7 c. 205-6.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Релиз командного интерпретатора Bash 4.2, opennews, 14-Фев-11, 13:36  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру