D1P

|
Posted: Fri Jan 12, 2007 22:41 Post subject: |
|
|
Вот же Фома неверующий. Специально для тебя проделал эксперимент, см. скриншоты.
1) units:=nil; //по идее это ДОЛЖНО делать строку пустой. Но фактически делает так, что она начинает указывать в никуда, и в результате TC может отобразить её как угодно.
http://super.wincmd.ru/_tmp/shot/Png1.png
http://super.wincmd.ru/_tmp/shot/Png2.png
2) strcopy (units,'');
http://super.wincmd.ru/_tmp/shot/Png3.png
http://super.wincmd.ru/_tmp/shot/Png4.png
3) units:=#0; //по сути то же что и units:=nil или units:=0
http://super.wincmd.ru/_tmp/shot/Png5.png
http://super.wincmd.ru/_tmp/shot/Png6.png
4) units[0]:=#0; //какие изменения от предыдущего? Да вроде никаких, только меняем не указатель, а переменную по адресу.
http://super.wincmd.ru/_tmp/shot/Png7.png
http://super.wincmd.ru/_tmp/shot/Png8.png
Так что, как видишь, к nil приравнивать нельзя, как раз вот такая бяка и получается (units тогда может содержать произвольный набор данных).
Вероятность того, что strcopy глюканёт, не больше того, что глюканёт оператор присваивания, хотя согласен с тем, что юзать units[0]:=#0; красивее (зато при использовании strcopy надо будет делать меньше движений, чтобы добавить юниты, если они понадобятся). _________________ База знаний о Total Commander
Блог |
|