Другой интересный пример - опять же для Clang - иллюстрирует другое характерное явление: языки С и С++ не гарантируют стабильности неинициализированного значения. То есть, вопреки ожиданиям некоторых детерминистически настроенных участников форума, значение неинициализированной переменной имеет право меняться само по себе
Смотря что вы подразумеваете под инициализацией. Современные компиляторы выделяют память под переменную практически сразу перед первым присвоением, и это будет инициализацией.Просто компилятов вычищает объект на какой-то стадии, если понимает, что он никак не может использоваться. Чуть сложнее с массивами памяти.
Что до флуктуаций значений, пока переменная не получила своего первого значения, байты находятся в вируальной карте адресов. То есть под них динамически выделяется память, которая до этого высвобождается другими процессами.
-- Чт ноя 17, 2022 15:26:00 --Была ошибка в коде.
Неудивительно, что ее не могли обнаружить другие, учитывая то, как вы приводили свой код, типа
Код:
for(int st =0; st < N; st++){
funk1(st,....);
funk2(st, ...);
[b]funkBag(st,...);[/b]
}
На будущее:
1) Внятной помощи вы добъетесь гораздо быстрее, если будете приводить минимальный воспроизводящий проблему код, в том виде, в котором вы его компилируете, - Ctrl+C - Ctrl+V, без многоточий и прочих коррекций.
2) Будет удобнее, если для оформления больших фрагментов кода, использовать тег syntax, а не code.
1) Я понимаю, что мои вопросы и код производят впечатление творения начинающего ламера. На физ-факе меня учили решать волновые уравнения с карандашиком в руках и изучаемого Алгола я не знал от слова совсем. Мои первые работающие программы были написаны на ассемблере Z80 и PDP11. Однако, поверьте мне на слово, я алгоритмист самого высокого уровня с публикациями в топовых журналах по теме computer science artificial intelligence. Поэтому понять как работают мои алгоритмы в конкретной реализации с многоуровневыми структурами вложения не так-то и просто. Тем более, что сам алгоритм работал и работает, как часы, а фрагмент, в которым возник сбой чисто иллюстративный, написанный для себя. Хочу понять на уровне математики, действительно ли работа алгоритма ограничена лишь временем, или существует теоретический предел. Точнее наоборот. Уверен, что только временем, но не могу это доказать.
2) Спасибо. Учту на будущее.