Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

По вопросам памяти


Plut ©   (2003-03-22 09:39:00) 

Передаю в функцию адрес переменной типа word:
var
b : word;
begin
MyFunc(@b)...
выдаёт ошибку Access Violation..., причём не ссылается на адрес FFFFFFFFh а на какой-то другой
Помогите кто может!!!


MBo   (2003-03-22 11:33:00) [1]

a и b пишутся в c

Move(a,c,SizeOf(a));
Move(b,PByteArray(@c)[SizeOf(a)],SizeOf(b));


Anatoly Podgoretsky   (2003-03-22 11:30:00) [2]

Ты думаешь, что M, m1, m2 могут быть одновременно и PMas и TMas


Plut   (2003-03-22 11:21:00) [3]

Пардон, M, m1, m2 -
type
PMas = ^TMas;
TMas = array of byte;


Snap   (2003-03-22 10:55:00) [4]

Help----> Find----> GetMem
FreeMem
StrAlloc
StrFree
New
Dispose
SetLength


Anatoly Podgoretsky   (2003-03-22 10:55:00) [5]

А что такое вообще M, M1, M2
Ты хочешь, что бы и мы запутались или свихнулись.
Почитай статью Как правильно задавать вопросы
http://ln.com.ua/~openxs/articles/smart-questions-ru.html


Plut   (2003-03-22 10:48:00) [6]

Не хочу показаться назойливым, но хоть намёк дайте:(


Snap   (2003-03-22 10:42:00) [7]

Слушай всю структуру этих процедур долго объяснять, правда, почитай хелп.


Plut   (2003-03-22 10:30:00) [8]

GetMem(m,SizeOf(m)) - выделяю память под переменную pointer
Короче я совсем запутался.
Цель процедуры Splicing склеить две переменные разных типов и вернуть указатель на склеиное
Может что подскажете?


Snap   (2003-03-22 10:23:00) [9]

Для начала объясни почему у MyFunc и Splicig разное количество и качество параметров? Во вторых GetMem(m,SizeOf(m));кажется мне довольно странным. Что ты этим хотел сделать?

ЗЫ. Почитай помощь в Дельфях по динамическим массивам и работой с кучей.


Plut   (2003-03-22 10:19:00) [10]

Ребятки, MyFunc (это образно), в действительности Splicing.
Подскажите мне пожалуйста, неучу.


Plut   (2003-03-22 10:09:00) [11]

procedure Splicing( Mas1, Mas2 : pointer; Len1, Len2 : integer; var p : PMas);
var
i : integer;
begin
GetMem(m,SizeOf(m));
SetLength(m^,Len1+Len2);
GetMem(m1,SizeOf(m1));
SetLength(m1^,Len1);
Move(Mas1,m1,Len1);
GetMem(m2,SizeOf(m2));
SetLength(m2^,Len2);
Move(Mas2,m2,Len2);
for i:=0 to Len1-1 do m^[i]:=m1^[i];
for i:=Len1 to Len1+Len2-1 do m^[i]:=m2^[i-Len1];
Move(m,p,Len1+Len2);
Finalize(m^);
FreeMem(m);
Finalize(m1^);
FreeMem(m1);
Finalize(m2^);
FreeMem(m2);
end;


Snap   (2003-03-22 10:09:00) [12]

Приведи код процедуры MyFunc


MBo   (2003-03-22 10:01:00) [13]

MyFunc ????


Наверх

Титульная страница Поиск, карта сайта Написать письмо