Ну подсказка у вас в примере. Убедитесь что понимаете по какому принципу заполнена матрица из примера ( с оглядкой на матрицу слева ). Затем попробуйте сформулировать для себя словами правила заполнения такой матрицы ( это уже и будет алгоритм ) ну и потом пишите код.
Собственно если вам матрица кажется слишком сложной то разделите ее на части - разделите ее диагоналями на 4 части, и попробуйте разобраться с каждой отдельно, а потом уже соединить все вместе.
Вижу в этом каноническом методе пару нюансов:
1. Имена файлов передаются по обычным указателям хотя можно их сделать константыми.
2. Не понимаю зачем выделять массив в куче, когда можно тоже самое сделать в стеке ( ведь размер его у нас константа ). И тогда не придется удалять его руками и следовательно не возникнет ситуации когда при вылетевшем исключении удаления не происходит.
Теоретически если упаковать все файловые дескрипторы в имена файлов, пройти по всем участкам памяти... мда и правда очень дорого. Быть может если запускать процесс в отдельном процессе, который бы сам выделял память и дескрипторы - тогда было бы проще. Ну а уж с сетевыми подключениями вообще неясно что делать. Ведь их состояние уже никак не сохранить.
Играю на 64 битах через стим. Проблем не встречал. То есть игры играют, на какой они архитектуре даже не смотрел. Со скайпом аналогично, он просто работает ( исключая случаи когда крэшится, конечно ).
Скорее всего вы увидите что перед вызовом vector.size() этот вектор уже указывает на 0 или на какой-то другой сегмент памяти, но память эта битая. Нужно понять на каком этапе vector ломается. Это произойдет до вызова siz() - этот вызов лишь признак болезни но не ее причина.
С дампом не подскажу, не работал.
Хм, вот у меня допустим за первые 2 года на первой работе, 2 на второй, 2 на третьей не было ни одно реализованного проекта. Не шучу. На двух работах - проекты заканчивались до их реализации, на третьей проект реализован был но компания развалилась, исходников нет, бинарников нет, даже сайты в сети удалились - показывать нечего. Так что я со своими амбициями мог бы пройти мимо после шести лет успешной ( с моей точки зрения ) работы.
>а какие паттерны для этого есть?
У питона есть ConfigParser - для хранения настроек приложения.
Если же у вас более тяжелые данные и простым ini файлом ( который использует конфиг парсер ) не обойтись - берите xml/json или любой другой популярный формат по вкусу и потребностям. Запрашивайте пользовательскую директорию у ОСи ( /home/user/ на никсах и MyDocuments на виндах ) и храните там файлы.