Clear(ANY)-->GPF

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Гость

Сообщение Гость »

Hi ALL,

наткнулся тут на интересную штучку. C55H WIN2000

Код: Выделить всё

Program
a      any
code
clear(a)
end
Получаем GPF.

Код: Выделить всё

Program
a      any
code
а=5
clear(a)
end
Работает на ура.

Т.е. нельзя применять clear() к перменным типа ANY до первой
операции присвоения...

Valentin Babaev <babaev@aeksh.org> (Aerztekammer Schleswig-Holstein)

(Добавление)

Я о подобном уже не раз писал.
Это - "стандартная" болезнь младших версий Клары - не проверка указателей на валидность перед их использованием. В C60 разработчики стали понемногу исправлятся - подобная ситуация теперь хоть и имеет место (вспомните, хотя-бы, мои последние письма с проблемой Init/Kill приложения), но уже значительно в меньшей степени. Будем надеятся, что дальше будет еще лучше!

=============================
С уважением, Олег А. Руденко.
Oleg_Rudenko@mail.ru
Oleg_Rudenko@mail333.com
Библиотека DynaLib
http://dynalib.narod.ru

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

Сергей.
Написал: ClaList(2)
Гость

Сообщение Гость »

Я о подобном уже не раз писал.
Верно! Спасибо. Всё по науке: одно дело - теория, а другое - практика. :)
Будем надеятся, что дальше будет еще лучше!
Будем! Причем - обязазательно!

ЗЫ. "Надежда умирает последней..."
Полагаю, правильным в данном случае будет проверять переменную на NULL перед очисткой...
Буду. Спасибо. Только это будет не то, чтобы "правильным", а, скорее, - необходимым.

Валентин
Написал: ClaList(2)
Гость

Сообщение Гость »

Буду. Спасибо. Только это будет не то, чтобы "правильным", а, скорее, - необходимым.
Хотя, если посмотреть на другие языки...

int *N;
N = new int[10];
...

и попробуй не проверь:

if (!N) // if (N != NULL)

перед тем как чистить:

delete [] N;

так что по-моему придираться тут не к чему
:))

--
Best regards,
Иван
Написал: ClaList(2)
Ответить