Алгоритм Штрассена. Оптимизация
Блин, у вас столько динамического выделения памяти, что аж старшно становиться! Попробуйте хотя бы выделять память большой пачкой. А лучше вообще на старте работы алгоритма выделить всю необходимую память. Один раз.
Вам нужно именно реализовать свой метод (т.е. это — какая-то лабораторная) или же вы изобретаете велосипед?
Если второе, то советую воспользоваться, к примеру, библиотеками BLAS или GSL.