Причиной является различие между тем, как основанная ОС на базе Windows и основанная на Unix ОС хранят маркеры конца строки.
основанные на Windows операционные системы, благодаря их наследию DOS, хранят конец строки как пару символов - 0x0D0A
(возврат каретки + перевод строки). Основанные на Unix операционные системы просто используют 0x0A
( перевод строки ). ^M
Вы видите, визуальное представление 0x0D
( возврат каретки ).
dos2unix поможет с этим. Вероятно, также необходимо скорректировать источник сценариев, чтобы быть 'благоприятными для Unix'.
new выделяет объем памяти, необходимый для хранения запрашиваемого объекта / массива. В этом случае n чисел int.
Затем указатель сохранит адрес для этого блока памяти.
Но будьте осторожны, этот выделенный блок памяти не будет освобожден, пока вы не скажете это, написав
delete [] array;