|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.05.2015, 01:20 | #1 |
Пользователь
Регистрация: 13.03.2010
Сообщений: 27
|
Указатели от теории к практике
Здравствуйте!
Вопрос у меня вот в чем. Как то не приходилось работать с указателями. Почитав материал вроде все понятно. Получить адрес, разыменовать указатель. Но вот на практике, что-то не то. Или потому что нет самой практики в этой теме. К примеру вот такая запись: Код:
Это верно? Я создаю класс - поток. Стандартный Tthread. TClientReadWriteData = class(TThread) Код:
Выделяю память Код:
А вот GetMem – сразу выделил память для bf Далее процедура потока. Код:
Код:
Очень интересна строчка s:= string(@bf); тут вся строка – но вначале несколько символов мусора. Потом идет чтение и запись. Фрагмент кода Код:
Может прокси нормально отработать. Загрузить страницу – одну – две. А может на первой странице вылетит ошибка Access Violation. Я много раз просматривал и вот что когда для bf выделяется память на номера 118…-120..-130.. все работает, а вот когда на 400… то ошибка. И что странно выпадает не при первом чтение (до цикла while) а вот уже в самом цикле while. В чем может быть ошибка? не правильно использую указатели? Подскажите как правильно должно быть. |
06.05.2015, 08:58 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Сделай bf локальной для TClientReadWriteData.Execute
I'm learning to live...
|
06.05.2015, 09:45 | #3 |
Пользователь
Регистрация: 13.03.2010
Сообщений: 27
|
|
06.05.2015, 11:37 | #4 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
"смешались в кучу кони, люди.." // эпиграф
а что, никого не смущает, что Цитата:
и чтобы работать с динамическим массивом, нужно выделять память с помощью SetLength ?! я бы сделал так: Код:
Последний раз редактировалось Serge_Bliznykov; 06.05.2015 в 11:43. |
|
06.05.2015, 11:42 | #5 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Или делал?
I'm learning to live...
|
|
06.05.2015, 11:54 | #6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
|
06.05.2015, 13:50 | #7 |
Форумчанин
Регистрация: 19.01.2015
Сообщений: 158
|
crossmark,
на всякий случай - хорошая статья, держу у себя в закладках http://www.transl-gunsmoker.ru/2009/09/blog-post.html |
06.05.2015, 14:23 | #8 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
SQLPowerUser, отличная статья!!!
кстати, не знаю, обратил автор темы внимание или нет, но я подчеркну цитату из своего поста: Цитата:
|
|
07.05.2015, 13:16 | #9 |
Пользователь
Регистрация: 13.03.2010
Сообщений: 27
|
большое спасибо
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
задания по практике | 25-й кадр | Помощь студентам | 4 | 06.12.2013 17:04 |
Что такое ADSL ,не на теории ,а на практике | viktor8888 | Свободное общение | 14 | 02.04.2013 21:22 |
Задание по практике | IPI | Помощь студентам | 4 | 15.06.2010 12:31 |
Отчот по практике | sby | Фриланс | 3 | 12.05.2009 17:16 |
[C] массивы, указатели, двойные указатели. | Iggel | Общие вопросы C/C++ | 5 | 05.05.2009 12:39 |