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

 

Долго колебался прежде чем постить, перепроверял свою поделку, но всё-таки с тестером что-то не так...

Прервался тест буквально в начале:

Не меняя ничего, нажимаю "старт" второй раз, проходит до конца (с небольшой паузой в том месте, где прервался) :

Сделал ещё несколько подходов - результаты строго чередуются (один за другим, чёт/нечет). До места "обрыва" графики баланса похожи. Повторюсь, ничего не меняю, только кликаю "Start"

Вероятнее всего это момент, когда добавляет ещё один символ (почему не все 5 с начала теста?):


Оставляя в стороне вопрос фактического наличия памяти (по данным диспетчера задач, свободно 1,2-1,4ГБ, т.е. совпадает с сообщением), не может же быть, что для выполнения одного и того же теста нужно разное количество памяти? Да и если по отчёту достаточно 400Мб, можно три таких теста запустить на 1.2Гб...

Дополнительные данные: тест на 5ти символах, по открытию баров, Н1, 2004...сегодня. В теле 7 массивов double на 500 элементов и один маленький массив-структура (хранит данные для каждого символа, т.е. в данном случае 5 х 13), размеры задаются при инициализации и больше не меняются, т.е. просто нечему пожирать память. Код процедурный, простенький, маленький, без рекурсий и подключаемых библиотек.

На четырёх символах - работает, на 6-7-8 - та же история, что на 5ти - через раз. При этом первый раз после добавления нового символа - всегда проходит, следующий - нет, потом опять проходит и т.д.

Есть подозрения, что память не высвобождается своевременно, только наличие ошибки, связанной с её нехваткой.

Итого 3 проблемы:

  • проходит тест через раз (строго) при отсутствии изменений в настройках либо коде
  • свободной памяти достаточно для нескольких тестов (если верить сообщению после успешного прохода), но появляется ошибка о её нехватке (на чётных попытках). (при "успехе" использовано 400, было свободно 1200 при ошибке)
  • некоторые символы подключаются к середине теста, при наличии истории (по журналу синхронизации это видно). Опрос сигнала на каждом новом баре всех символов (в цикле)

 
Alexey Navoykov:
Речь шла о хедерах.  А данное сочетание относится к cpp. По крайней мере у меня в 2010 студии так.
да ( и ваш способ похоже удобнее чем делать пустой cpp для хедера
[Удален]  

Почему это запрещено?

void fn(const int&) {}

void start() {
   fn(5);  // parameter passed as reference, variable expected

}
 
Vict:

Почему это запрещено?

так повелось издревле. литералы только по значению. почему - хз, надо разрабов спрашивать
 
TheXpert:
так повелось издревле. литералы только по значению. почему - хз, надо разрабов спрашивать

Передача параметра по ссылке предполагает наличие переменной, распределённой в памяти.

Константы же нигде не хранятся, а используются непосредственно.

[Удален]  
TheXpert:
так повелось издревле. литералы только по значению. почему - хз, надо разрабов спрашивать

В угоду мазохистам. Стандартная билиотека не впечатлила, решил написать подобие vector, но из-за обилия "фишечек" получается ещё одна недоподелка.

void push_back(const T &value);
 
Slava:

Передача параметра по ссылке предполагает наличие переменной, распределённой в памяти.

Константы же нигде не хранятся, а используются непосредственно.

и что вам мешает создать временную переменную?
 
TheXpert:
и что вам мешает создать временную переменную?

Так и делаю. Зачем за меня это должны делать разработчики - не понимаю.

[Удален]  
fxsaber:

Так и делаю. Зачем за меня это должны делать разработчики - не понимаю.

Для того, чтобы жизнь стала проще, а хеллоу ворлд не превращался в портянку? Ещё можно не признавать автогенерацию конструкторов/операторов=.
 
fxsaber:

Так и делаю. Зачем за меня это должны делать разработчики - не понимаю.

как хорошо что создатели других языков менее категоричны по этому поводу