Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.02.03;
Скачать: [xml.tar.bz2];

Вниз

Как правильно использовать Команду MOVE ?   Найти похожие ветки 

 
IgorKuz   (2003-01-23 16:15) [0]

type
PMyRec = ^TMyRec;
TMyRec = record Data1 : word; Data2 : integer; end;

function GetBufr (P : pointer) : TMayRec;
var
PR : pointer;
N : TMyRec;
begin
Move(P,PR^,SizeOf(TMyRec));
// А вот Здесь уже не работает ?
N:=PMyRec(PR)^;
// ....
end;
procedure MyProc;
var
PR : pointer;
N : TMyRec;
begin
GetMem(P,100);
// .... Заполняю буфер
Move(P,PR^,SizeOf(TMyRec));
// Здесь все работает
N:=PMyRec(PR)^;
GetBufr(P);
//.....
end;
begin
MyProc;
end;
В функции GetBufr Данные в N записываются наполовину верно


 
Игорь Шевченко   (2003-01-23 16:17) [1]

Move(P^,PR^,SizeOf(TMyRec));


 
gsu   (2003-01-23 16:18) [2]

+GetMem"s


 
REA   (2003-01-23 16:26) [3]

Чтобы недоразумений не было использовать CopyMemory из W32API


 
Игорь Шевченко   (2003-01-23 16:28) [4]

var
PR : pointer;
N : TMyRec;
begin
Move(P,PR^,SizeOf(TMyRec));

А PR, конечно, инициализировать не надо. И warnings у компилятора отключен по умолчанию ? В сад!


 
Anatoly Podgoretsky   (2003-01-23 16:29) [5]

К Чубайсу


 
IgorKuz   (2003-01-23 16:33) [6]

Поправка после GetMem(P,100) есть GetMem(PR,SizeOf(TMyRrec))


 
Anatoly Podgoretsky   (2003-01-23 16:46) [7]

Не видать определения P


 
han_malign   (2003-01-23 16:59) [8]

И абсолютно не понятен смысл всех этих танцев с бубном:
GetBufr - абсолютно ничего не делает кроме Access Violation
Может подразумевалось
function GetBufr(p: pointer; Index: integer): TMyRec;
begin
inc(DWORD(p),Index*sizeof(TMyRec));
move(p^,Result,sizeof(TMyRec));
end;
??????????
З.Ы. Ты насчет области видимости переменных слышал??? N и PR в GetBufr, и N и PR в MyProc - это абсолютно разные переменные... А P совпадают только потому, что глобальная P передается в аргументе P...



 
IgorKuz   (2003-01-23 17:17) [9]

Han_Malign
Это написано лишь для примера
мне нужно работать с указателями а типы считования могут быть разные
на счет видимости переменных я слышал :) . Одинаковые
названия просто для простоты понимания.


 
gsu   (2003-01-23 17:19) [10]

>> IgorKuz ©
Так как же те помочь, ежли ты пишешь, что ни попадя ?



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

Форум: "Основная";
Текущий архив: 2003.02.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
1-4847
oomneeq
2003-01-24 13:25
2003.02.03
Ecть ли такая функция?


3-4792
Alexandr
2003-01-15 12:12
2003.02.03
Формат даты в Interbase и не только


1-4838
roman001
2003-01-23 12:13
2003.02.03
Перевод из римских чисел в арабские


1-5044
Azim
2003-01-24 10:35
2003.02.03
DBGrid


3-4721
Ч
2003-01-17 19:49
2003.02.03
---|Ветка была без названия|---





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский