purebasic.info

PureBasic forum
Текущее время: Чт янв 18, 2018 6:30 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Глюк компилятора или мой?
СообщениеДобавлено: Чт апр 04, 2013 4:16 pm 
Не в сети
профессор

Зарегистрирован: Ср янв 14, 2009 4:12 pm
Сообщений: 2002
Благодарил (а): 12 раз.
Поблагодарили: 101 раз.
Пункты репутации: 43
В версии PB 5.11 компиль ругается на такую строку в процедуре
Код:
1
           instr = ""


Цитата:
[ERROR] Invalid memory access. (write error at address 0)

Переменная объявлена в начале процедуры
Код:
1
Protected instr.s


В версии 4.60 этой ошибки нет. Вот и думаю, что бы это значило. Мысли есть у кого

_________________
Всё должно быть просто, настолько просто, насколько возможно, но не проще. (c) Альберт Эйнштейн
Изображение


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт апр 04, 2013 4:34 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11079
Благодарил (а): 4 раз.
Поблагодарили: 384 раз.
Нужен код, в котором возникает ошибка.
У меня такой код в 5.11 работает нормально.
Код:
1
2
3
4
5
Procedure x()
  Protected instr.s
  instr = ""
EndProcedure
x()


_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт апр 04, 2013 5:10 pm 
Не в сети
профессор

Зарегистрирован: Ср янв 14, 2009 4:12 pm
Сообщений: 2002
Благодарил (а): 12 раз.
Поблагодарили: 101 раз.
Пункты репутации: 43
Пётр писал(а):
Нужен код, в котором возникает ошибка.

К сожалению пока, это не OpenSource. Выкрутился тем, что заремил инструкции вида
Код:
1
 instr = ""


потому как в прцедуре строковая локальная переменная и так = ""

_________________
Всё должно быть просто, настолько просто, насколько возможно, но не проще. (c) Альберт Эйнштейн
Изображение


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт сен 05, 2013 10:26 am 
Не в сети
профессор

Зарегистрирован: Ср янв 14, 2009 4:12 pm
Сообщений: 2002
Благодарил (а): 12 раз.
Поблагодарили: 101 раз.
Пункты репутации: 43
Еще вопрос? Это баг или фича Вопрос в коментариях
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
;Global val  ; Если объявить здесь, это глобальная переменная
Procedure _Timer()
  If val > 200
    MessageRequester("", "Ахтунг")
  Else
    val +1
    Debug val
  EndIf
EndProcedure
Global val  ; Если объявить здесь, то не является глобальной для процедуры _Timer() ?????
 
If OpenWindow(0, 0, 0, 320, 90, "ScintillaGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    SetTimer_(WindowID(0),10,100,  @_Timer() )
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
 


_________________
Всё должно быть просто, настолько просто, насколько возможно, но не проще. (c) Альберт Эйнштейн
Изображение


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт сен 05, 2013 10:37 am 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11079
Благодарил (а): 4 раз.
Поблагодарили: 384 раз.
Это особенность компилятора (он однопроходный).
Добавь EnableExplicit в начало кода.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт сен 05, 2013 2:25 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Вс дек 09, 2012 9:02 pm
Сообщений: 768
Откуда: Дагестан
Благодарил (а): 0 раз.
Поблагодарили: 11 раз.
Пункты репутации: 0
Пётр
Цитата:
Добавь EnableExplicit в начало кода

а она чьё, многопроходный делает? :wink:


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт сен 05, 2013 2:58 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11079
Благодарил (а): 4 раз.
Поблагодарили: 384 раз.
Нет, но появится сообщение об ошибке, что явно укажет на не объявленную переменную.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб сен 07, 2013 11:32 am 
Не в сети
профессор

Зарегистрирован: Ср янв 14, 2009 4:12 pm
Сообщений: 2002
Благодарил (а): 12 раз.
Поблагодарили: 101 раз.
Пункты репутации: 43
Пётр писал(а):
Это особенность компилятора (он однопроходный).

Спасибо.

_________________
Всё должно быть просто, настолько просто, насколько возможно, но не проще. (c) Альберт Эйнштейн
Изображение


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB