Pointer delphi
Автор Mad Max задал вопрос в разделе Другие языки и технологии
Помогите с типом поинтер в Delphi и получил лучший ответ
Ответ от Jurijus Zaksas[гуру]
Эмм... А зачем, собственно, ты используешь такой жестокий дженерик, как Pointer? В этом случае сравнения вроде A[J]^ < A[K]^ никак работать не могут, потому что ^ подразумевает тип определенной величины, а типов-то у тебя как раз и нет. Используй типизированные указатели, не мучайся.
Ответ от Jurii[гуру]
Попробуй вынести тип массива из параметра процедуры.
И где у тебя, собственно, массив задаётся?
Попробуй вынести тип массива из параметра процедуры.
И где у тебя, собственно, массив задаётся?
Ответ от Sm[гуру]
> ВОт правильный
Это НЕправильный код.
> ВОт правильный
Это НЕправильный код.
Ответ от Kuliba kulibin[гуру]
Ну, логично.. . строка Swap ( A, A[K] ); и не сможет откомпилироваться, т. к. процедура Swap ожидает тип Pointer для обоих параметров, а ей в первом параметре Array подсовывают. Кроме того, каким образом должно выполняться сравнение A[J]^ < A[K]^ ? Элемент массива имеет тип Pointer, т. е. абстрактный указатель ни на что - просто адрес памяти. Как должны сравниваться два "ничто"? Вот если бы был не Pointer, а, скажем (чисто для примера) , ^Integer, тогда было бы понятно - после разыменования указателей мы имеем два Integer, которые мы спокойно можем сравнить...
Ну, логично.. . строка Swap ( A, A[K] ); и не сможет откомпилироваться, т. к. процедура Swap ожидает тип Pointer для обоих параметров, а ей в первом параметре Array подсовывают. Кроме того, каким образом должно выполняться сравнение A[J]^ < A[K]^ ? Элемент массива имеет тип Pointer, т. е. абстрактный указатель ни на что - просто адрес памяти. Как должны сравниваться два "ничто"? Вот если бы был не Pointer, а, скажем (чисто для примера) , ^Integer, тогда было бы понятно - после разыменования указателей мы имеем два Integer, которые мы спокойно можем сравнить...
Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Помогите с типом поинтер в Delphi