Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.19;
Скачать: CL | DM;

Вниз

По вопросам памяти   Найти похожие ветки 

 
Plut   (2003-03-22 09:39) [0]

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


 
MBo ©   (2003-03-22 10:01) [1]

MyFunc ????


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

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) [3]

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


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

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


 
Snap ©   (2003-03-22 10:23) [5]

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

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


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

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


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

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


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

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


 
Snap ©   (2003-03-22 10:55) [9]

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


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

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


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

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


 
Anatoly Podgoretsky ©   (2003-03-22 11:30) [12]

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


 
MBo ©   (2003-03-22 11:33) [13]

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

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



Страницы: 1 вся ветка

Текущий архив: 2003.05.19;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.014 c
3-59601
Alpine
2003-04-24 13:58
2003.05.19
Посоветуйте компоненты для доступа к базе MS SQL.


14-59872
Snap
2003-04-28 12:37
2003.05.19
Помогите, Линукс не ставится


1-59772
Avreliy
2003-05-06 15:43
2003.05.19
Из Делфи7 в Делфи4


3-59616
ligor
2003-04-28 22:13
2003.05.19
FibPlus


3-59557
mihei
2003-04-25 13:14
2003.05.19
DBGridEh+Checkboxes