Ошибки, баги, вопросы - страница 2569

 
Roman:

Да, и содержит мусор

Вопрос был совсем в другом. Проинициализировать пустым значением, не нулём. Если такое вообще возможно.
Ноль это число! Пустое значение в моём понимании, нет чисел, пустота.
Но ячейки памяти проинициализированы этой пустотой )) 

Как Вы это представляете?

Ячейка памяти всегда что-то содержит. В одном байте может быть число от 0 до 255.

Пустое значение не предусмотрено.

 
Roman:

Да, и содержит мусор

Вопрос был совсем в другом. Проинициализировать пустым значением, не нулём. Если такое вообще возможно.
Ноль это число! Пустое значение в моём понимании, нет чисел, пустота.
Но ячейки памяти проинициализированы этой пустотой ))


Возможно всё, но задача не ясна, вариантов можно много придумать. Либо выделить из диапазона char коды со спец состоянием если возможно (CHAR_MAX - пустота, CHAR_MAX-1 - ошибка, и т.д), либо параллельно char массиву хранить флаги описывающие состояние символьного массива (один байт - флаги "пустоты" для восьми ячеек). Но, скорее всего, это вообще не нужно, странного хотите.

ЗЫ: видимо влияние языков, где все массивы ассоциативные
 
Roman:

Да, и содержит мусор

Вопрос был совсем в другом. Проинициализировать пустым значением, не нулём. Если такое вообще возможно.
Ноль это число! Пустое значение в моём понимании, нет чисел, пустота.
Но ячейки памяти проинициализированы этой пустотой )) 

Так не бывает))) Байт это единица информации. Если он есть, значит есть значение.
 
Maksim Emeliashin:

MT5 Билд 2145 от 17 сентября 2019.

При запуске тестера автоматически отключает кластер агентов локальной сети. Если его включить принудительно, то при следующем запуске тестера он опять его принудительно отключает.

Итак уже надоела проблема, которая полгода тянется, когда внезапно половина агентов перестает принимать задание и приходится их принудительно отключать и снова включать,

а теперь еще и локальных агентов приходится включать при каждом запуске тестера.

В журнал тестера что выводится при этом?

 
Slava:

В журнал тестера что выводится при этом?

Уже понял, была отладочная версия советника, по всей видимости ее нельзя использовать для тестера в локальных агентах, а можно только в тех, что на твоем компьютере, хотя и непонятно, почему.
 
Roman:

Да, и содержит мусор

Вопрос был совсем в другом. Проинициализировать пустым значением, не нулём. Если такое вообще возможно.
Ноль это число! Пустое значение в моём понимании, нет чисел, пустота.
Но ячейки памяти проинициализированы этой пустотой )) 

вот, например, инициализируем различные типы "пустотой"

   uchar  c=EMPTY_VALUE;
   uint   i=EMPTY_VALUE;
   ulong  l=EMPTY_VALUE;
   short  s=EMPTY_VALUE;
   float  f=EMPTY_VALUE;
   double d=EMPTY_VALUE;
   string str=EMPTY_VALUE;
   uchar uc[];
   StringToCharArray(str,uc);

что имеем в HEX виде при отладке:


Со стрингом вообще прикол


но если стринг проинициализировать так

string str="";

тогда результат:


ну а если вообще не инициализировать(string str;) равно как и проинициализировать =NULL, тогда то, что вам нужно - реальная пустота:


 
Nikolai Semko:

вот, например, инициализируем различные типы "пустотой"

что имеем в HEX виде при отладке:


Со стрингом вообще прикол


но если стринг проинициализировать так

тогда результат:


ну а если вообще не инициализировать(string str;) равно как и проинициализировать =NULL, тогда то, что вам нужно - реальная пустота:


Где Вы пустоту увидели? Выход за пределы массива называется. В С/С++ undefined behaviour, а здесь runtime error.
Все остальные типы неявно кастятся от double, так что, там тоже все правильно.
 
Vladimir Simakov:
Где Вы пустоту увидели? Выход за пределы массива называется. В С/С++ undefined behaviour, а здесь runtime error.
Все остальные типы неявно кастятся от double, так что, там тоже все правильно.

у стринга пустота(а не у массива uchar), словно его и нет, т.е. даже памяти не выделяется.

У других типов такого наблюдается. Если объявили переменную, значит память уже выделилась.
Но ведь по сути стринг это же не примитивный тип, а ссылочный, равно как и любой массив.

 

не могу сообразить как проверить PrintFormat

Примечание

При работе в тестере стратегий в режиме оптимизации функция PrintFormat() не выполняется.

есть мысли у кого?

 
Igor Makanu:

не могу сообразить как проверить PrintFormat

Примечание

При работе в тестере стратегий в режиме оптимизации функция PrintFormat() не выполняется.

есть мысли у кого?

Проверить что?

Поглядеть как выводит?

В визуализаторе.

Причина обращения: