Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Как возвратить указатель на массив?


Автор: Redteak 1.4.2006, 12:40
Здравствуйте! smile

В Delphi я пишу метод, позволяющий сортировать массив. Массив передается как параметр. Нужно, чтобы метод возвращал отсортированный массив (или указатель на него - как правильно?). Как это сделать? Если можно, приведите, пожалуйста, пример кода. Или отредактируйте код, который я привел (как видите, там нет указателей). Буду очень благодарен.

Код

Typy
    TSomeTypy=Array of Integer;   

...

Function TSomeClass.SomeMethod(Ar : Array of Integer) : TSomeType;
Begin
    ... //Сортировка
    Result:=Ar;
End;





Автор: Демо 1.4.2006, 13:11
От руки писал, что-ли?
Не мог из IDE скопировать?
Добавлено @ 13:11
Код

  TSomeType=array of Integer;

function SomeMethod(Ar: TSomeType) : TSomeType;
begin
    Result:=Ar;
end;

Добавлено @ 13:15
Если обязательно с указателями:

Код


  PSomeType=^TSomeType;
  TSomeType=array of Integer;

procedure SomeMethod(Ar: PSomeType);
begin
  //Сортировка
// Ar^[0] : =
end;



Можно даже так:

Код

procedure SomeMethod(var  Ar: TSomeType);
begin
  //Сортировка
end;

Автор: Redteak 1.4.2006, 14:52
Цитата

От руки писал, что-ли?
Не мог из IDE скопировать?

Я понял, как ты догадался. smile Извини за опечатку. Русская "У" и английская "E" на одной клавиши. Я иногда ошибаюсь.

Мне нужно сделать функцию, которая будет принимать массив как параметр, сортировать и возвращать значение. Можно ли, чтобы вводимый массив(параметр) был типа Array of Integer. И чтобы метод возвращал массив(Result) такого-же типа? А то у меня возникает ошибка Incompatible types. Как это можно исправить?

Автор: Демо 1.4.2006, 15:20
Redteak,

Как ты себе представляешь описание функции, возвращающей array of Integer?
Для этого определен тип TSomeType. С ним и работай.

Автор: Redteak 1.4.2006, 15:42
Массив типа Array of Integer функция вернуть не может, согласен.

А указатель на массив Array of Integer функции, вроде, возвращают...

Если да, то как это в коде выглядит?

Автор: Демо 1.4.2006, 17:09
Redteak,

Это можно, но не вижу причин заниматься извращениями.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)