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

Вниз

Указатель   Найти похожие ветки 

 
Василий Кузнецов   (2007-06-06 23:46) [0]

Здравствуйте, а нельзя как в Си...

var
P : ^integer;
a : array of integer;
b : array of integer;

begin
   SetLength(a, 10);
   SetLength(b, 10);
    P := a;
   ^(P) := 1;
   ^(P+1) := 2;
   P := b;
   //........
end;


такая задумка, в Делфи не моуг перевести.
Спасибо.


 
Плохиш ©   (2007-06-06 23:58) [1]

Прикольно, вместо изучения основ, пытаются засандалить какой-то указатель, туда, где он нафик не нужен

a[0] := 1;
a[1] := 2;
и т.д.
аналогично для другого массива

А ещё тайну приоткрою, в паскале есть три типа циклов...


 
Василий Кузнецов   (2007-06-07 00:09) [2]


> А ещё тайну приоткрою, в паскале есть три типа циклов...


Спасибо большое - приоткрыли
суть не в том чтобы элементу массива значение присвоить а чтобы на указатель ссылался сначала на один массив а потом на другой


 
DrPass ©   (2007-06-07 00:17) [3]

p:=@a[0];
p^:= 1;
inc(integer(p), 4);
p^:= 2;
p:=@b[0];


 
DrPass ©   (2007-06-07 00:20) [4]

P.S. Вдогонку... как не знающему основ, на всякий случай напомню, что в строке inc(integer(p), 4) слово integer не имеет никакого отношения к слову integer в строке a : array of integer;


 
Василий Кузнецов   (2007-06-07 00:51) [5]


> P.S. Вдогонку... как не знающему основ, на всякий случай
> напомню, что в строке inc(integer(p), 4) слово integer не
> имеет никакого отношения к слову integer в строке a : array
> of integer;


Спасибо за ответ

Я так полагаю перевели физический адрес в байты, добавили 4


 
DrPass ©   (2007-06-07 01:00) [6]


> Я так полагаю перевели физический адрес в байты, добавили
> 4

Верно ;)


 
Германн ©   (2007-06-07 01:30) [7]


> Я так полагаю перевели физический адрес в байты, добавили
> 4

Имхо, лучше не полагаться на текущий размер типа Integer. Он ведь и изменится может. Такое уже однажды было.


 
Defunct ©   (2007-06-07 02:18) [8]

Василий Кузнецов   (07.06.07 00:09) [2]
Может надо нечтно навроде такого (чуть-чуть ближе к C получится):

const
  WHO_CARES = 1024 * 1024;

type

  PArray = ^TArray;
  TArray = array[0..WHO_CARES] of integer;

var
 P : PArray;
 A : Array[1..20] of integer;
 B : Array[0..10] of integer;

...
begin
 P := PArray( @A[Low(A)] );
 P[0] := 10;
 P[1] := 15;
 ...

 P := PArray( @B[Low(B)] );
 P[0] := 20;
 P[1] := 30;
 ...

end;


 
begin...end ©   (2007-06-07 14:35) [9]

> DrPass ©   (07.06.07 00:17) [3]

> inc(integer(p), 4)

Inc(p)


 
SpellCaster   (2007-06-07 15:08) [10]

> [3] DrPass ©   (07.06.07 00:17)

чтобы уж совсем коротко:
p:=@a;
p^:= 1;
inc(p,4);
p^:= 2;
p:=@b;


 
Германн ©   (2007-06-07 16:53) [11]


> SpellCaster   (07.06.07 15:08) [10]
>
> inc(p,4);
>

А если хелп почитать?


 
KSergey ©   (2007-06-08 08:44) [12]

> Василий Кузнецов   (07.06.07 00:09) [2]
> а чтобы на указатель ссылался сначала на один массив а потом
> на другой

А можно узнать зачем это вообще надо? ну т.е. задача-то какая?


 
SpellCaster   (2007-06-08 19:06) [13]

> [11] Германн ©   (07.06.07 16:53)

Млин, сорри - именно это и хотел удалить, но забыл :(
Разумеется,
inc(p);



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

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

Наверх





Память: 0.48 MB
Время: 0.004 c
2-1181207740
alienff
2007-06-07 13:15
2007.07.01
FTP


2-1180983976
serg777
2007-06-04 23:06
2007.07.01
Закрасить фон


3-1175606550
serp
2007-04-03 17:22
2007.07.01
AppendRecord массивом


1-1178149014
VaY
2007-05-03 03:36
2007.07.01
VCL & C


1-1178104837
BAHbKA
2007-05-02 15:20
2007.07.01
Проблема поиска известных файлов





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский