Текущий архив: 2003.02.17;
Скачать: CL | DM;
ВнизПосмотрите текст плиз Найти похожие ветки
← →
BANick (2003-02-07 21:32) [0]propert:array [0..8] of Tprop;
tprop= record
name:pstring;
list:array of pstring;
end;
.......
setlength(propert[3].list,2);
getmem(propert[3].list[0],6);
propert[3].list[0]^:="False";
getmem(propert[3].list[1],5);
propert[3].list[1]^:="True";
//в propert[3].list[0] = (xxxxxxxx,"");???
//в propert[3].list[1]=(xxxxxxxx,"True");
getmem(propert[4].name,10);
propert[4].name^:="Номер слоя";
//в propert[3].list[1]=(xxxxxxxx,"Srue"); ?!?!?!?
← →
jack128 (2003-02-07 21:40) [1]Посмотрел...
Я бы сделал так :
setlength(propert[3].list,2);
New(propert[3].list[0]);
propert[3].list[0]^:="False";
New(propert[3].list[1]);
propert[3].list[1]^:="True";
Но ты подумай : нужен ли тебе массив указателей на строки
Может проще просто массив строк?
← →
BANick (2003-02-07 22:17) [2]Мне нужно, чтобы размер структуры в которой этот массив, был постоянен, а строка меняет размер, поэтому мне не подойдет просто массив строк, а new тут использовать нельзя(нужно выделить память определенного размера)
← →
jack128 (2003-02-07 22:48) [3]Строка это указатель так что размер record"а(ну же все таки на паскале пишем :))) и так постоянный(не говоря о том что дин масасив это тоже указатель)
насчет new : это процедура выделяет память под string
а под символы строки память автоматически выделяется
var s : string;//вместо статич. объявления переменной ты
пишешь New(pstring);
begin
GetMem(s,4);// Ошибка
s := "Мама";// тут автоматом выделяется память под символы
end;
← →
jack128 (2003-02-07 22:50) [4]м-да... почитал чего я написал и ужаснулся
Страницы: 1 вся ветка
Текущий архив: 2003.02.17;
Скачать: CL | DM;
Память: 0.44 MB
Время: 0.009 c