Текущий архив: 2006.07.16;
Скачать: CL | DM;
Внизstring [8] заполняется только четырьмя символами Найти похожие ветки
← →
Mr tray (2006-06-25 16:12) [0]Здравствуйте. Столкнулся с непоняткой. Специально воплотил её в одной простой программе:
{$APPTYPE CONSOLE}
type
str8=string [8];
function g:str8;
var
i:byte;
begin
for i:=1 to 8 do
result[i]:="y";
writeln(result);
end;
begin
{ TODO -oUser -cConsole Main : Insert code here }
g;
readln;
end.
Почему не выводится восемь "y", а только четыре?
← →
MBo © (2006-06-25 16:19) [1]добавь в функцию вначале
setlength(result,8);
← →
Palladin © (2006-06-25 16:19) [2]
{$APPTYPE CONSOLE}
type
str8=string [8];
function g:str8;
var
i:byte;
begin
result[0]:=#8;
for i:=1 to 8 do
result[i]:="y";
writeln(result);
end;
begin
{ TODO -oUser -cConsole Main : Insert code here }
g;
readln;
end.
в подобного типа (коротких) строках, ее длинна хранится в (как ты уже догадался) в [0], при вызове фунции result заполнен мусором, ты заполняешь только 8 символов начиная со второго байта, первый же так и остается мусором, (и не факт что именно 4 y будут, может быть все что угодно)
← →
Palladin © (2006-06-25 16:21) [3]
> MBo © (25.06.06 16:19) [1]
ну или так :)
← →
Mr tray (2006-06-25 16:52) [4]ясно. спасибо
Страницы: 1 вся ветка
Текущий архив: 2006.07.16;
Скачать: CL | DM;
Память: 0.44 MB
Время: 0.007 c