Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вопрос про динамические массивы
double open_main_array[] - переменная класса
инициализация
ArraySetAsSeries(open_main_array,true);
1-й вызов фунции в которой есть такой код
CopyOpen(Symbol(), PERIOD_M15, 0, Count, open_main_array);
2-й вызов фунции
CopyOpen(Symbol(), PERIOD_M15, 0, Count, open_main_array);
В массиве open_main_array будет содержаться данные которые скопированы во 2-м вызове или массив увеличится и будет содержать данные 1-го и 2-го вызова?
а так можно использвать:
ArrayFree(open_main_array)
CopyOpen(Symbol(), PERIOD_M15, 0, Count, open_main_array);
uninialized variable - означает, что переменная гарантированно имеет ветку прохода, когда она не инициализирована. например, в switch явно пропущен default, в котором надо явным образом инициализировать MainPrice (или при объявлении явно занулить).
Насчёт "гарантированного прохода". Вот такой кусочек кода:
Для последней строчки (строка 15) выдаётся "possible use of uninitialized variable 'local_low' ".
Но из-за использования bool-переменной interrupcion в строке 9 сразу после инициализации переменной local_low в строке 8 получается, что в строке 15 переменная local_low будет гарантированно инициализированной. Поэтому на текущий момент предупреждение "possible use of uninitialized variable 'local_low' " означает не "гарантированное", а всего лишь возможное наличие ветки прохода, при котором переменная не инициализирована.
Насчёт "гарантированного прохода". Вот такой кусочек кода:
Для последней строчки (строка 15) выдаётся "possible use of uninitialized variable 'local_low' ".
Но из-за использования bool-переменной interrupcion в строке 9 сразу после инициализации переменной local_low в строке 8 получается, что в строке 15 переменная local_low будет гарантированно инициализированной. Поэтому на текущий момент предупреждение "possible use of uninitialized variable 'local_low' " означает не "гарантированное", а всего лишь возможное наличие ветки прохода, при котором переменная не инициализирована.
Абсолютно верно выдает предупреждение.
Не путайте свою самоуверенность с реальностью. Реальность раскрывается после множества проектов и понимания, что "этого не может быть ибо логика ведет так-то" случается ежедневно.
Не путайте свою самоуверенность с реальностью. Реальность раскрывается после множества проектов и понимания, что "этого не может быть ибо логика ведет так-то" случается ежедневно.
А адекватное объяснение можно получить? Код приведён, "самоуверенное" утверждение изложено, в чём ошибка? Эзотерику не понимаю.
...Если же учитывать перевод фразы "possible use of uninitialized variable", то предупреждение, действительно, выдаётся "абсолютно верное". Но не о не "гарантированном", а всего лишь о возможном наличии ветки прохода, при котором переменная не инициализирована. То есть ровно то, о чём "самоуверенно" говорю я.
А адекватное объяснение можно получить? Код приведён, "самоуверенное" утверждение изложено, в чём ошибка? Эзотерику не понимаю.
А если бы у вас вместо
было (например)
вы бы тоже претензии предъявляли? Особенно, если someFunctionN состоит из сотен строк кода?По Вашему куску кода - да, переменная инициализирована, если выполняется 15-я строка. Но что прикажете делать компилятору в примере, который я привёл? Задача сложная. Да и решать её нет такой уж необходимости.
А ошибка называется "possible (возможно) use of uninitialized variable" (хотя Вы итак об этом знаете)
А лучше явно присвоить какое-нить значение переменной local_low. Поверьте, это может уберечь Вас от возможных ошибок в будущем (код правится, что-то удаляется, что-то перемещается, что-то меняется, а строка 13 может выпасть из этого процесса)
А адекватное объяснение можно получить? Код приведён, "самоуверенное" утверждение изложено, в чём ошибка? Эзотерику не понимаю.
В реальных условиях, когда подавляющее большинство программистов на любом языке пишут абсолютно незащищенный и глюкавый код, компиляторы нужно делать максимально строгими. Самоуверенность программистов "логика идет четко, проблем не должно быть, инициализируется все как надо" приносила, приносит и будет приносить гигантское количество ошибок.
Поэтому вопросы по критике строгих мер тут неуместны.
... Самоуверенность программистов "логика идет четко, проблем не должно быть, инициализируется все как надо" приносила, приносит и будет приносить гигантское количество ошибок.
Поэтому вопросы по критике строгих мер тут неуместны.
Обойдёмся без критики. Тем более, что я её в свои слова не вкладывал. И по поводу наличия критики с моей стороны Вы глубоко заблуждаетесь.
Итак, в чём ошибка? Поскольку эзотерику в код не вставишь, прошу ответить на языке логики. Т.е. на языке, понятном любому программисту.
вы бы тоже претензии предъявляли? Особенно, если someFunctionN состоит из сотен строк кода?
И Вы туда же. Ну нет у меня претензий. Есть уточнение, что не всё так категорично, как утверждает Ренат.
По поводу кода. Я привел конкретный пример кода, который при использовании обычной логики опровергает категоричность утверждения Рената. За советы спасибо, стараюсь совершенствоваться постоянно.
Обойдёмся без критики. Тем более, что я её в свои слова не вкладывал. И по поводу наличия критики с моей стороны Вы глубоко заблуждаетесь.
Итак, в чём ошибка? Поскольку эзотерику в код не вставишь, прошу ответить на языке логики. Т.е. на языке, понятном любому программисту.
У вас "possible use of uninitialized variable 'local_low' "
А что выдаётся если
Итак, в чём ошибка? Поскольку эзотерику в код не вставишь, прошу ответить на языке логики. Т.е. на языке, понятном любому программисту.
Перечитайте мои ответы с точки зрения руководителя софтверной компании, который довел до рынка много программных проектов.
Иначе, оставшись на уровне "любого программиста", так и не поймете в чем ошибка.