На первый вопрос ответил, что текст не отформатирован, переменные и названия функций не несут смысловой нагрузки. Я не должен делать предположения по поводу тела функции g и поведению операторов new, без большей информации нет смысла искать проблемы. На второй ответил, что следуют заменить printf(argv[1]) на puts(argv[1]). Может они хотели услышать про уязвимость printf или еще чего. На досуге подумаю. Смысл в этом задании ведь должен какой-то быть.