Уже понял, была отладочная версия советника, по всей видимости ее нельзя использовать для тестера в локальных агентах, а можно только в тех, что на твоем компьютере, хотя и непонятно, почему.
Вопрос был совсем в другом. Проинициализировать пустым значением, не нулём. Если такое вообще возможно. Ноль это число! Пустое значение в моём понимании, нет чисел, пустота. Но ячейки памяти проинициализированы этой пустотой ))
вот, например, инициализируем различные типы "пустотой"
Vladimir Simakov: Где Вы пустоту увидели? Выход за пределы массива называется. В С/С++ undefined behaviour, а здесь runtime error.
Все остальные типы неявно кастятся от double, так что, там тоже все правильно.
у стринга пустота(а не у массива uchar), словно его и нет, т.е. даже памяти не выделяется.
У других типов такого наблюдается. Если объявили переменную, значит память уже выделилась. Но ведь по сути стринг это же не примитивный тип, а ссылочный, равно как и любой массив.
у стринга пустота, словно его и нет, т.е. даже памяти не выделяется.
У других типов такого наблюдается. Если объявили переменную, значит память уже выделилась. Но ведь по сути стринг это же не примитивный тип, а ссылочный.
Как же нет? Память под объект string в куче выделена, а по адресу памяти, с которого начинается сам текст стоит 0х00
Vladimir Simakov: Как же нет? Память под объект string в куче выделена, а по адресу памяти, с которого начинается сам текст стоит 0х00
память выделяется только на имя и на ссылку, но не на сам объект, т.к. его пока нет. С примитивными типами такого нет, там память выделяется в момент создания переменной, даже без инициализации. Не хочу бадаться терминологией. И так все друг друга понимают. Все это очевидности.
А если StringFormat и полученную строку в файл? (для каждого прохода свой файл создавать в папке общего доступа - чтобы тестер не затёр их).
хороший вариант, протестирую
ЗЫ: код в очередной раз переписываю, чтобы в оптимизаторе быстрее работал (результаты было 5ч, сейчас 1,5 ч !!!)
вот сейчас наткнулся в справке на printf(), и решил проверить все свои принты, где нужно заменить....ну заменил и стала оптимизация 22 ч ....нашел где накосячил, но естественно сразу мысли, что дело все в printf() !!!
)))
попробовал проверить работу printf() в оптимизаторе так:
int xx=10;
voidOnTick()
{ printf("1/x = %f",1/(xx--));
....
пока сразу получил, что ожидал:
2019.09.20 11:29:16.611Core 1genetic pass (0, 607) tested with error "critical runtime error 503 in OnTick function (zero divide, module Experts\)" in 0:00:00.048
ожидалось, что если написано "PrintFormat() не выполняется." то и должен это получить
В журнал тестера что выводится при этом?
Да, и содержит мусор
Вопрос был совсем в другом. Проинициализировать пустым значением, не нулём. Если такое вообще возможно.
Ноль это число! Пустое значение в моём понимании, нет чисел, пустота.
Но ячейки памяти проинициализированы этой пустотой ))
вот, например, инициализируем различные типы "пустотой"
что имеем в HEX виде при отладке:
Со стрингом вообще прикол
но если стринг проинициализировать так
тогда результат:
ну а если вообще не инициализировать(string str;) равно как и проинициализировать =NULL, тогда то, что вам нужно - реальная пустота:
вот, например, инициализируем различные типы "пустотой"
что имеем в HEX виде при отладке:
Со стрингом вообще прикол
но если стринг проинициализировать так
тогда результат:
ну а если вообще не инициализировать(string str;) равно как и проинициализировать =NULL, тогда то, что вам нужно - реальная пустота:
Где Вы пустоту увидели? Выход за пределы массива называется. В С/С++ undefined behaviour, а здесь runtime error.
у стринга пустота(а не у массива uchar), словно его и нет, т.е. даже памяти не выделяется.
У других типов такого наблюдается. Если объявили переменную, значит память уже выделилась.
Но ведь по сути стринг это же не примитивный тип, а ссылочный, равно как и любой массив.
не могу сообразить как проверить PrintFormat
Примечание
При работе в тестере стратегий в режиме оптимизации функция PrintFormat() не выполняется.
есть мысли у кого?
не могу сообразить как проверить PrintFormat
Примечание
При работе в тестере стратегий в режиме оптимизации функция PrintFormat() не выполняется.
есть мысли у кого?
Проверить что?
Поглядеть как выводит?
В визуализаторе.
у стринга пустота, словно его и нет, т.е. даже памяти не выделяется.
У других типов такого наблюдается. Если объявили переменную, значит память уже выделилась.
Но ведь по сути стринг это же не примитивный тип, а ссылочный.
не могу сообразить как проверить PrintFormat
Примечание
При работе в тестере стратегий в режиме оптимизации функция PrintFormat() не выполняется.
есть мысли у кого?
А если StringFormat и полученную строку в файл? (для каждого прохода свой файл создавать в папке общего доступа - чтобы тестер не затёр их).
Как же нет? Память под объект string в куче выделена, а по адресу памяти, с которого начинается сам текст стоит 0х00
память выделяется только на имя и на ссылку, но не на сам объект, т.к. его пока нет. С примитивными типами такого нет, там память выделяется в момент создания переменной, даже без инициализации.
Не хочу бадаться терминологией. И так все друг друга понимают.
Все это очевидности.
А если StringFormat и полученную строку в файл? (для каждого прохода свой файл создавать в папке общего доступа - чтобы тестер не затёр их).
хороший вариант, протестирую
ЗЫ: код в очередной раз переписываю, чтобы в оптимизаторе быстрее работал (результаты было 5ч, сейчас 1,5 ч !!!)
вот сейчас наткнулся в справке на printf(), и решил проверить все свои принты, где нужно заменить....ну заменил и стала оптимизация 22 ч ....нашел где накосячил, но естественно сразу мысли, что дело все в printf() !!!
)))
попробовал проверить работу printf() в оптимизаторе так:
пока сразу получил, что ожидал:
2019.09.20 11:29:16.611 Core 1 genetic pass (0, 607) tested with error "critical runtime error 503 in OnTick function (zero divide, module Experts\)" in 0:00:00.048
ожидалось, что если написано "PrintFormat() не выполняется." то и должен это получить