Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.13;
Скачать: CL | DM;

Вниз

Если не сложно - напишите ответ на 145й пост   Найти похожие ветки 

 
TUser ©   (2005-01-28 15:17) [0]

вот из этой ветки
http://delphimaster.net/view/1-1106658881/


 
Александр Иванов ©   (2005-01-28 15:23) [1]

Насколько помню точно также, за исключением динамических массивов.


 
TUser ©   (2005-01-28 15:27) [2]

Там статические, но обсуждаемый код после TPC.exe (6я версия) выдал RunTimeError 202, а dcc32.exe (после того, как ублат ТР"шный модуль и написал apptype) сделал безглючную программу.


 
TUser ©   (2005-01-28 15:28) [3]

Паскалем скомпилированная программа нормально заработала, когда я написал PVector = ^TVector, Vector: PVector, дальше - New и Dispose + операторы разыменования везде, где надо. В вызовах функций убрал var, и заменил типа параметра на TVector.


 
Александр Иванов ©   (2005-01-28 15:36) [4]

Она, по идее, и в ТР должна работать, я не вижу ошибок. А что хелп говорит, по поводу ошибки 202?
Когда-то я их помнил :).


 
TUser ©   (2005-01-28 16:04) [5]


> Она, по идее, и в ТР должна работать, я не вижу ошибок

Я тоже так думал.

Хелпа у меня нет по ТР - только консольный компилятор.


 
PVOzerski ©   (2005-01-28 16:46) [6]

Stack overflow - можно поиграть директивой {$M ... (1-е число)


 
PVOzerski ©   (2005-01-28 16:47) [7]

Много рекурсий или локальных переменных?


 
Александр Иванов ©   (2005-01-28 16:57) [8]

PVOzerski ©   (28.01.05 16:46) [6]
можно поиграть директивой {$M ... (1-е число)

Там всего массив 10000 элементов, целочисленный, так что память не при чем.

PVOzerski ©   (28.01.05 16:47) [7]
Много рекурсий или локальных переменных?

Никаких рекурсий.

Вы думаете ошибка связана с нехваткой памяти?


 
Александр Иванов ©   (2005-01-28 16:58) [9]

Извините, не заметил начало [6]


 
PVOzerski ©   (2005-01-28 16:58) [10]

Александр, в этой директиве 1-й параметр - размер стека. А твой массив часом не локальный?


 
Александр Иванов ©   (2005-01-28 17:02) [11]

Это не мой массив :). Вот код:
Program FindMinPrg;

Uses Crt;

Type
TVector = Array [1..10000] Of integer;

Var
Vector : TVector;
 I : Integer;

Function FindMin (Vect : TVector) : Integer;
Var
X, Min : Integer;
Begin
Min := Vect [1];
For X := 2 To 10000 Do
If Min > Vect [x] Then
 Min := Vect [X];

FindMin := Min;
End;

Procedure SetRandom (Var Vect : TVector);
Var
X : integer;
Begin
For X := 1 To 10000 Do
  Vect [x] := random (32767)-16384;
End;

Begin
ClrScr;
Randomize;
 SetRandom (Vector);
 WriteLn ("Min: ", FindMin (Vector));
End.


 
Александр Иванов ©   (2005-01-28 17:04) [12]

По моему переполнению стека просто неоткуда взяться.


 
Александр Иванов ©   (2005-01-28 17:06) [13]

По умолчанию 16К? Если так то в Function FindMin (Vect : TVector) : Integer; параметр по значению передается и как раз превышает 16К.


 
Александр Иванов ©   (2005-01-28 17:09) [14]

И все решение - в добавлении слова var


 
TUser ©   (2005-01-28 19:06) [15]

Понятно, спасибо.

Хорош Делфи размером стека ...


 
_Lucky_   (2005-01-28 19:27) [16]


> Александр Иванов ©   (28.01.05 17:09) [14]
> И все решение - в добавлении слова var


браво! на 5+, если честно задай мне такую задачу ввек бы не решил, ну не знаю я на столько хорошо пас.


> TUser ©   (28.01.05 19:06) [15]
> Понятно, спасибо.
>
> Хорош Делфи размером стека ...


отнють, представть что надо отсортировать массив в 100 мегов, может возникнуть неприятная ситуация, хотя щас 100 мегов никого не удевить, у меня например 512, но все же



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

Текущий архив: 2005.02.13;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.035 c
9-1090498776
Evgeniy_K
2004-07-22 16:19
2005.02.13
Ошибка


1-1106976914
KyPCAHT
2005-01-29 08:35
2005.02.13
Реестр


14-1106582077
netnetnet
2005-01-24 18:54
2005.02.13
.net


9-1099762372
FRick
2004-11-06 20:32
2005.02.13
GLScene & CVS


3-1105605429
MakNik
2005-01-13 11:37
2005.02.13
ADOQuery + dxDBGrid