Форум: "Основная";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
Внизbuf[0..2048]array of byte и buf array of bute;setlength(buf,204 Найти похожие ветки
← →
redlord (2004-10-12 19:24) [0]всем привет
народ объясните в чом разница между
buf[0..2048]array of byte
и
buf array of bute;setlength(buf,2048);
в первом случае все работает а во втором ошибка при обращении к адресу (при попытке использовать масив)
← →
SammIk © (2004-10-12 19:26) [1]А потомучто bute))
← →
SammIk © (2004-10-12 19:27) [2]А код есть?
Может ты используешь больше чем выделил
← →
begin...end © (2004-10-12 19:28) [3]SetLength(buf, 2049);
?
← →
Суслик © (2004-10-12 19:29) [4]привет разничу обяснить не смогу т к не знаю на каком языке ты пишеш а также незнаю какие ты принимаш попытки к спользованию масива если ты пишеш на дельфи то думаю что имело бы смысл написать вопрос окуратней без ошибок очепаток и прочей лабуды это как минимум привлечет внеманее к твоему вопросу и не будет выглядеть так отвратительно как сейчас по сути вопроса я пому предположить что в первом случае ты имел в виду массив а во втором динамический массив разница между этими конструкциями огромна думаю для начала надо почитать хелп привести код как ты используеш эти масивы главное понять что динамические массивы это по сути укозатель
← →
begin...end © (2004-10-12 19:32) [5]
> [4] Суслик © (12.10.04 19:29)
Вижу, Вы Думу не послушались, употребили чего-то ;-))
← →
SammIk © (2004-10-12 19:34) [6]Бобрик- Это конечно так(указатель), но делфя берет на себя все это.
И програмеру не показывает это, НО из-за того, что это
указатель и возникают ошибки писанины ни туда.
Просто нужно чувак(redlord) следить за тем куда ты пишешь.
Я предпологаю что у тебя есть нечнто вроде:buf array of bute;
...............
setlength(buf,2048);
................
for i:=0 to 5000 do<< Внимание сюда!!! Нет у тебя стольких элиментов
..............
← →
SammIk © (2004-10-12 19:36) [7]А насчет вопроса, сусел конечно прав.
Жутко написано, если на листе такая бадяга, то что в голове?
← →
Суслик © (2004-10-12 19:36) [8]
> [5] begin...end © (12.10.04 19:32)
а тебя такое небрежное отношение к постановке вопроса не заимало?
← →
SammIk © (2004-10-12 19:37) [9]Да, кстати если сдесь
buf:array[0..2048] of byte;
...............
................
for i:=0 to 5000 do
Компилятор будет ругатся, то во втором случае НЕТ
← →
Суслик © (2004-10-12 19:37) [10]
> [7] SammIk © (12.10.04 19:36)
сусел!!
Это будет эволюция моего ника.
Зарекся я уже людей воспитывать, но не всегда удерживаюсь.
← →
Суслик © (2004-10-12 19:38) [11]
> Компилятор будет ругатся
Не будет - все новички уже ассы - у них никогда range check error не включен
← →
SammIk © (2004-10-12 19:39) [12]Наверное НЕ Воспитывать?
← →
Суслик © (2004-10-12 19:39) [13]
> [12] SammIk © (12.10.04 19:39)
> Наверное НЕ Воспитывать?
Да, наверное. Как будет угодно.
← →
SammIk © (2004-10-12 19:40) [14]Серьезно?
А голова на что? Разве не упомнит? А?
← →
SammIk © (2004-10-12 19:41) [15]Какои поддатливый
← →
Суслик © (2004-10-12 19:43) [16]
> Какои поддатливый
Да меня тут затюкали с моим русским языком. Вот и поддаюсь, чтобы не спорить.
------------------
Автору.
Пока вопрос нормально не поставишь, хрена лысого тебе кто-то что-то дельное ответит.
← →
SammIk © (2004-10-12 19:50) [17]Балбес автор(это справедливо), и скорее(100%) просто вышел за границы. Так что проверяи, а нам скажи был ли я прав. Так интересно узанть.
2 {16} Думаешь совет не поможет?)
← →
Суслик © (2004-10-12 19:51) [18]
> 2 {16} Думаешь совет не поможет?)
нет
← →
begin...end © (2004-10-12 19:53) [19]
> [8] Суслик © (12.10.04 19:36)
> а тебя такое небрежное отношение к постановке вопроса не заимало?
Расслабьтесь ;-)
Автора нету. Может, случилось чего?
← →
SammIk © (2004-10-12 19:54) [20]Автор, разьясните нашь спор. Уже просто очень интересно.
Дорогой сосел, как Вы думаете, что может быть акромя этого.
В данной(есесно) ситуации?
← →
begin...end © (2004-10-12 19:57) [21]Ставлю на выход за границы в виде: 2048 вместо 2049.
← →
Суслик © (2004-10-12 19:58) [22]
> Дорогой сосел, как Вы думаете, что может быть акромя этого.
> В данной(есесно) ситуации?
за сосла в глаз :)) шутка, ну вы поняли.
Может быть например такое:move(buff, .., 2048)
В первом случае будет все нормально.
Во стором вероятен AV
← →
SammIk © (2004-10-12 19:59) [23]Может на оборот? 2049 вместо 2048? Я про тоже.
Поздравляю, в нашем полку любопытствующих прибыло!!
-
А автор, походу умыл руки.
Ты не стесняйся, мы не обидем. Нам интересно!!
← →
SammIk © (2004-10-12 20:01) [24]И в-первом и во-втором стоит писать @buff.
Если мне не изменяет память, Вы уж судари простите, но
я за делфеи не сидел ужо пол года.
← →
begin...end © (2004-10-12 20:01) [25]
> [23] SammIk © (12.10.04 19:59)
> Может на оборот? 2049 вместо 2048?
Ну это смотря с какой стороны посмотреть ;-) Короче, Автор: 2048 <> 2049.
← →
SammIk © (2004-10-12 20:03) [26]Не, скорее всего выделил он 2048, но где-то решил заглянуть дальше.
А хотя кто его знает)
← →
Суслик © (2004-10-12 20:03) [27]
> [24] SammIk © (12.10.04 20:01)
еще как изменяет вам память.
Неверная....
← →
SammIk © (2004-10-12 20:05) [28]мож я ее с movememory спутал
← →
jack128 © (2004-10-12 20:12) [29]SammIk © (12.10.04 20:03) [26]
а почему со стат массивом нормально проходит??? Мне импанирует вариант с Move(buf, ..); это классическая ошибка при работе с дин массивами, строками...
← →
jack128 © (2004-10-12 20:15) [30]jack128 © (12.10.04 20:12) [29]
ну то есть не обязательно Move, любая функция, где используются не типизированные параметры..
← →
SammIk © (2004-10-12 20:15) [31]Тогда второй вариант, выделил, гад, меньше чем нам сказал!!!
Обманывает он нас!!!
← →
SammIk © (2004-10-12 20:16) [32]Маиби
← →
SammIk © (2004-10-12 20:17) [33]У меня аж трубка погасла, пока я тут постил!(
← →
Суслик © (2004-10-12 20:18) [34]
> [33] SammIk © (12.10.04 20:17)
ты кочегарь, кочегарь анашу. Жалко, если пропадет.
← →
SammIk © (2004-10-12 20:20) [35]Опиум, курю я. Опиум!
← →
GEN++ © (2004-10-12 20:28) [36]Автора темы - в студию!
← →
jack128 © (2004-10-12 20:29) [37]Мдя.. Какое пиво?.. Тут опиум курят в обществ. местах. Форум - это ведь общественое место?
← →
SammIk © (2004-10-12 20:30) [38]НЕ в студию, а к стене. Все скажет в "последнем слове")
← →
redlord (2004-10-12 20:39) [39]сори за длительное отсутствие
за очепятки тоже извентиляюсь :-)
(выше тройки по русскому у меня никогда не было)
цыкл в работе изпользуется
Fin:=tfilestream.Create(info[FnTotal].f,$0);//fmOpenRead);
info[Fntotal].s:=Fin.Size;
for n:=1 to Fin.size div 2048 do
begin
Fin.ReadBuffer(buf, 2048);
blockwrite(Fout,buf,2048,donewrite);
application.ProcessMessages;
end;
Fin.ReadBuffer(buf,Fin.size mod 2048 );
blockwrite(Fout,buf,Fin.size mod 2048,donewrite);
application.ProcessMessages;
Fin.Free;
...
closefile(Fout);
паток применен для возможности копирования самого себя.
вся эта каша применяется в проге паковщика файлов с возможностью само распаковки
← →
jack128 © (2004-10-12 20:44) [40]redlord (12.10.04 20:39) [39]
blockwrite(Fout,buf,2048,donewrite);
Я угадал!!! :-)
blockwrite(Fout,buf[low(buf)],2048,donewrite);
Страницы: 1 2 вся ветка
Форум: "Основная";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.033 c