Вы не инициализируете нулями i. Простая запись
int i;
не обязательно обнулит i. Это может вызвать ошибки сегментации, когда вы пытаетесь использовать i в качестве индекса в массиве - я могу иметь значение что угодно , так что это может go выйти за пределы. Вам нужно написать
int i = 0;
Сделайте то же самое с лимитом.
Кроме того,
allorder[i] = order1;
должна быть этой строкой. Кроме того, почему вы объявляете allorder как 10x100, если вы индексируете его по одному индексу? Удалить одно из измерений. Кроме того, сделайте allorder в массиве строк, а не в символах, поскольку вы присваиваете строки его элементам.
Вы уже используете C ++, поэтому нет смысла использовать старые конструкции C, когда существуют альтернативы , Используйте вектор, а не массив или строковый массив. Вы можете посмотреть, как использовать эти функции C ++, которые гораздо более гибки и функциональны, чем те, которые вы используете сейчас, во многих разных местах. Сайты cppreference.com и cplusplus.com - два больших, которые я использую.
О, и используйте отступы! Пожалуйста! :)