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

Вниз

массив типа BYTE   Найти похожие ветки 

 
garald   (2005-12-26 01:48) [0]

есть такой тип
type
 PHash = ^THash;
 THash = array of Byte;
var S: THash

как мне теперь забить массив S данными(как к нему обращаться) и вообще что это за структура такая получилась?


 
з. танька   (2005-12-26 03:12) [1]

нету здесь никакой структуры.
PHash = ^THash; //указатель на массив
THash = array of Byte;  //тип массива
var S: THash  //сам массив

перед употреблением массив инициализируешь:

var
 size: integer;
begin
 size := длина_твово_массива;
 SetLength(S, size);

в остальном всё то же самое как и в обычных массивах.


 
tesseract ©   (2005-12-26 10:22) [2]


> в остальном всё то же самое как и в обычных массивах.


Как в обычных динамических массивах. Индекс всегда начинается с 0.

А память под PHash выделить тоже наверно стоит.

Как правило такой массив используется чтобы трактовать какие нибудь данные как набор байтов. И в delphi существует:

PbyteArray:^TbyteArray;
TbyteArray: array [1..64535] of byte;

Которые для этих целей и служит.


 
evvcom ©   (2005-12-26 10:43) [3]


> А память под PHash выделить тоже наверно стоит.

Ну так переменную описываешь, и память выделяется автоматом.


 
tesseract ©   (2005-12-26 16:09) [4]


> Ну так переменную описываешь, и память выделяется автоматом.


Это вроде не переменная, а указатель. Чтобы он куда-то указывал ему надо присвоить значение или выделить под него память.


 
evvcom ©   (2005-12-26 16:46) [5]


> Это вроде не переменная, а указатель.

Точно.

> Чтобы он куда-то указывал ему надо присвоить значение

точно

> или выделить под него память

под указатель память уже выделена. Память можно выделить (но совсем не обязательно, так как она уже может быть выделена) под данные, на которые этот указатель будет указывать. А если выделить память под указатель, то этот адрес надо будет снова где-то сохранять (в другом указателе) :)


 
tesseract ©   (2005-12-26 20:37) [6]


> под указатель память уже выделена.


ГДЕ ? Он в коде я смотрю ваапсче не используется, ввели его зачем?

Если использовать именно указанный phash - это тип данных, но никак не описанная переменая

одно дело Var P:^thash и другое дело type Phash:^thash.


 
Германн ©   (2005-12-27 01:59) [7]

А об чём вооще спор?
Токмо об "нестыковке", т.е. о неверной формулировке высказывания. Т.е. думал об одном, говорил про другое.

> tesseract ©   (26.12.05 10:22) [2]
> А память под PHash выделить тоже наверно стоит.


Если нет переменной, то о каком выделении памяти может идти речь?


 
evvcom ©   (2005-12-27 08:58) [8]


> tesseract ©   (26.12.05 20:37) [6]

У тебя довольно много верных высказываний, но ты бываешь неаккуратен в употреблении таких слов как "всегда", "все" и т.п., т.е. слишком категоричен. Я, чую, тоже был не совсем точен, написав

> под указатель память уже выделена

я пропустил "должна быть", видимо думал, что меня поймут. Ан нет. :) См. [7]


 
Amoeba ©   (2005-12-27 11:23) [9]


> type
>  PHash = ^THash;
>  THash = array of Byte;
> var S: THash


PHash = ^THash; - это убери нафиг! THash - это же динамический массив - он уже является указателем. Нечего плодить указатели на указатели.



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

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

Наверх





Память: 0.47 MB
Время: 0.013 c
1-1134493278
Mishenka
2005-12-13 20:01
2006.01.15
Как в ListBox определить количество строк видимых на экране?


14-1134736827
Иксик
2005-12-16 15:40
2006.01.15
А я сегодня посадил дерево!


6-1127822981
arhis
2005-09-27 16:09
2006.01.15
Исходящий траффик TServerSocket


14-1135054847
begin...end
2005-12-20 08:00
2006.01.15
С Днём рождения! 20 декабря


3-1132162640
keymaster
2005-11-16 20:37
2006.01.15
Как узнать структуру таблицы MS ACCESS





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