![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Динамический массив [D7, WinXP]
Дмитрий © (2004-09-23 14:23:00)У меня есть динамический массив типа record. Присваиваю ему длину функцией Setlenght. При закрытии программы возникают системные ошибки. Пробовал применительно к массиву Finalize, присваивал ему значение nil, присваивал нулевой размер функцией Setlenght. История повторяется.. Подскажите, пожалуйста, в чем проблема.
П7 (2004-09-24 14:20:00) [1]
> То есть тебе 14 лет, и с Delphi ты работаешь где-то с 7-ми
> лет?
Товарищь, не нужно путать реальную жизнь и жизнь программерскую... (:
> Откуда нам знать с целой ни одной строчкой кода?
Ну дык и круто!!! Программа не имеющая ни одной строчки коди никогда не поимеет ошибок от динамических массивов!!! (:
> Суслик © (24.09.04 11:28) [22]
Ну и в чём ошибки-то проявятся? Ну вернёт она тебе arr[-1] := 934545764567 ну и чё? В чём у тебя "системные ошибки".
И вообще, "системные ошибки" - это ошибки системы, под которой работает прога. Программиста это иметь не должно. Пусть пользователи ставят нормальную систему... (:
Суслик (2004-09-24 11:28:00) [2]Очень часто ошибка в дин. массивах бывает потому, что не включен range checking error - вылезаешь за границы, а программа это тихо хавает.
TUser (2004-09-24 09:50:00) [3]
> Ошибка ТОЧНО не в том, в чём ты её предполагаешь!!!
Откуда нам знать с целой ни одной строчкой кода?
VMcL (2004-09-24 09:49:00) [4]>> П7 (24.09.04 09:40) [18]
> Я половину жизнь так с дин.массивами работаю и ничего!!!
Дин. массивы появились, AFAIR, в Delphi 4, который, если не ошибаюсь, вышел не раньше 1997 года. То есть тебе 14 лет, и с Delphi ты работаешь где-то с 7-ми лет?
Anatoly Podgoretsky (2004-09-24 09:44:00) [5]П7 (24.09.04 09:40) [18]
Ты ошибаешься, он не пошутил, а ему просто стыдно.
П7 (2004-09-24 09:40:00) [6]Ага, классно автор пошутил над вами!!! (:Вы тут уже тучу постов наплодили, а он так и не появлился...
Ну и чтобы Модератор не удалил этот пост, как флуд (с него станется):
Ошибка ТОЧНО не в том, в чём ты её предполагаешь!!! TUser правильно сказал. Я половину жизнь так с дин.массивами работаю и ничего!!! (:
TUser (2004-09-24 07:47:00) [7]
> Подскажите, пожалуйста, в чем проблема.
Могу сказать только
1. Такие ошибки трудно находить. Особенно нам, т.к. не видели мы ни кода, ни ошибки, ни строчки, где она происходит.
2. Часто оказывается, что дело вовсе не в том, о чем ты думал изначально. Очень даже может быть, что д.м. здесь не при чем.
GanibalLector (2004-09-24 01:41:00) [8]От того,что ты сделал setlength и закрыл его nil-ом у тебя программа НИКОГДА системные ошибки выдавать не будет.ИМХО,ты его просто не верно заполняешь.
Проверь
for i:= 0to length(твоймассив)-1 do ...
Sandman25 (2004-09-23 16:52:00) [9][14] Суслик © (23.09.04 16:51)
присваивал ему значение nil
Никакого C++ :)
Как обычно, "Автора!" :)
Суслик (2004-09-23 16:51:00) [10]
> [13] Sandman25 © (23.09.04 16:35)
А если на с++?
Зачем гадать? Пусть автор соизволит ответить.
:)
Sandman25 (2004-09-23 16:35:00) [11][12] Суслик © (23.09.04 16:34)
А если в DLL?
Суслик (2004-09-23 16:34:00) [12]
> Наверное в record используеш тип String?
а не все ли равно?
Erik1 (2004-09-23 16:04:00) [13]Наверное в record используеш тип String?
Linco (2004-09-23 15:52:00) [14]Тьфу!! Бес попутал! Не то имел ввиду :) Сори
Суслик (2004-09-23 15:46:00) [15]
> Что не так?
Облажался, вот что
Linco (2004-09-23 15:44:00) [16]Удалено модератором
Linco (2004-09-23 15:44:00) [17]Что не так?
TUser (2004-09-23 15:42:00) [18]
> надо выделять setlength(recarray,sizeof(rec)*countarrayelements).
К Остеру.
KSergey (2004-09-23 15:41:00) [19]> [3] Linco (23.09.04 15:36)
> надо выделять setlength(recarray,sizeof(rec)*countarrayelements).
Чего-чего??? Сам-то понял что сказал??
Суслик (2004-09-23 15:39:00) [20]
> [3] Linco (23.09.04 15:36)
не надо мозги туманить людям :))))