Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 11 по 20 из 35

Тема: Проверка на Null указателей

  1. #11
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,255

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Но вот при выделении самого участка памяти для объекта (из кучи) - может вернутся и случайный
    как, выделяя динамически память, я указываю какой тип данных будет и ОС вернет мне требуемый кусок памяти либо ноль что означает что не удалось найти подходящий объем памяти для объекта, т.ею случайности быть не может. Другими словами если проверять что возвращает функция(а этого требует и документация) в дальнейшем проверять и на несуществующий экземпляр не придется
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  2. #12
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,269

    По умолчанию

    Ну так и есть - случайное образование nil при вызове выделителя памяти
    Используемая инициализация объекта с полем pnext (выше) - принудительная установка
    Но для проверяющего список - появление nil в поле pnext текущего объекта опять же - случайное. Проверяющий не знает заранее кол-во элементов в списке. Ему это вообще побоку. Он вообще в библиотеке. Вводить дополнительную сущность ?

    PS
    Изв. за перерыв. Шашлык не ждет

  3. #13
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,255

    По умолчанию

    что есть список? в МЭК нет такого оператора, если это что то своё, то стоит позаботиться то методе size() чтоб проверяющий мог знать количество элементов. Если это массив строк, то на место удалённых обычно смещают последующие элементы, не могу я представить появление null-об'ектов в КДС
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  4. #14
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    типа данных null
    null сам по себе традиционно не является и не относится к типам данным. Это самостоятельная лексическая единица, обозначающая неинициализированный указатель. Без неё можно жить. C++ обходился и обходится без поддержки null со стороны компилятора, но в C++11 (2011) литерал nullptr был введён на замену устоявшейся нулевой константе NULL, вместо которой можно писать просто 0.
    что есть список?
    Список есть совокупность смежно-связанных элементов. Следует различать массив и список (массив есть совокупность смежно расположенных в памяти элементов). В отличие от массива, для функционирования списка не требуется определение его размера, но при этом отсутствует произвольный доступ за константаное время по индексу элемента (как следствие неопределённого размера и расположения элементов в памяти — требуется обход с попутным вычислением индекса). Возможны смешанные реализации.
    чтоб проверяющий мог знать количество элементов
    Практика программирования такова, что списки чаще используют там, где не требуется знать количество элементов. Вы начинаете обход списка с заранее известного элемента (чаще с головы или хвоста) и продолжаете до тех пор, пока вам не надоест или не попадётся пустой указатель (0, NULL, NIL, nullptr и т.д.) на следующий элемент, что и будет означать конец списка во взятом вами направлении.
    Последний раз редактировалось Yegor; 23.08.2015 в 19:21.

  5. #15
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,269

    По умолчанию

    Егор замечательно все сказал. Чисто добавить :
    введён на замену устоявшейся нулевой константе NULL, вместо которой можно писать просто 0..
    Ключевое слово - константа. Именованные константы повышают читабельность и переносимость.
    Хоть и везде несуществующий указатель это 0, но писать 0 или NULL - это из серии выбирать между 0/1 и TRUE/FALSE (в КДС). Без разницы, но лично я всегда пишу TRUE/FALSE.

  6. #16
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,255

    По умолчанию

    тут точно все говорят про мэк, в яве я пользуюсь проверкой на null, на здесь у меня в окне объявлений компилятор не допустит непринициализированный объект.
    что касается списков, я знаю обобщенно два вида списков, нумерованный (enum) и list, первый насколько понимаю встречается в кдс и там нам известно в каких случаях будет null
    по поводу нуля, указатель вернувший ноль, мне кажется совсем не то, что указатель на тип null, это я про то как звучит вопрос темы

    зы кого то вот шашлыки ждут, а меня Уфа, т.ч. проверить все вышесказанное в кдс не смогу)
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  7. #17
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,269

    По умолчанию

    про тип null Егор уже сказал.
    автор темы, предполагаю, имел ввиду как кто проверяет указатель на предмет того а указывает ли он.

  8. #18
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,255

    По умолчанию

    а что Егор сказал такого про null, применительно в КДС, например указатель на реал, ткните его в любую точку памяти, когда это он вернет null?
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  9. #19
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,269

    По умолчанию

    Не вернет, а сам есть null

    var
    p : pointer to real;

  10. #20
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,255

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Не вернет, а сам есть null

    var
    p : pointer to real;
    и какова же в таком случае должна быть проверка, на этапе загрузки проекта в плк проверить неиспользуемые переменные
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя

Похожие темы

  1. применение указателей
    от Дмитрий Артюховский в разделе ПЛК1хх
    Ответов: 9
    Последнее сообщение: 09.02.2016, 18:07
  2. Использование указателей Pointer
    от Андрей Плеханов в разделе ПЛК3хх
    Ответов: 23
    Последнее сообщение: 24.07.2014, 21:58
  3. Ответов: 3
    Последнее сообщение: 10.04.2013, 19:48
  4. проверка на качество показаний
    от evgnik в разделе ПЛК1хх
    Ответов: 22
    Последнее сообщение: 14.11.2011, 09:05
  5. Получение списка/указателей на ФБ проекта
    от Аркадий в разделе ПЛК1хх
    Ответов: 9
    Последнее сообщение: 05.03.2008, 18:22

Ваши права

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