И в Яндекс-е работают Delphi-сты

И в Яндекс-е работают Delphi-сты…

Яндекс ищет Delphi-программистов в Питере для развития клиента Яндекс. Деньги. Задачки, приведенные для отбора, довольно-таки легкие. Например 3-я задачка:

Всегда ли правомерен и безопасен приведенный код: procedure Foo (Args: array of string); var

I: Cardinal; begin for I := Low(Args) to High(Args) do

Windows. MessageBox(0, PChar(Args[I]), nil, 0); end;

Ответ виден на третьей строке процедуры. Кому интересно - удачи.

7 Ответов to “И в Яндекс-е работают Delphi-сты…”

Андрей сказал:

В этом фрагменте вообще-то три ошибки.

Причем самая грубая - вовсе не самая очевидная из третьей строчки ;) нам как раз интереснее, когда говорят о другой странности этого кода..

Впрочем, вопросы на сайте - только пред. фильтр и повод для разговора, к ответам подходим без фанатизма ;) aktuba сказал:

Рад, что мой блог кто-то в Яндексе смотрит

VICTAR сказал:

2 Андрей

3 Ошибки??? Где?

Ну кроме 3-ей строчке.. можно увидеть что в процедуру передается массив и он МОЖЕТ быть довольно большим.. причем передается что будет кушать память…

VICTAR сказал:

И? Речь идет об ошибках. А это максимум оплошность)

Михаил сказал:

Так вон же, кардинал используется вместо интеджера! Он то все и испортит. Если придет пустой массив, насколько я помню, High вернет -1, а это что-то больше 4-х миллиардов итераций. Вот и будем курить бамбук, пока MessageBox не навернется на мусоре из кучи. Ну, а если шортстринги включены, то вообще работать не будет.

Admin сказал:

Про Cardinal я и намекал, а вот про ShortString, виноват, не подумал.


Карта сайта


Информационный сайт Webavtocat.ru