вообще впринципе goto использовать нельзя
во-первых, код становится труден для понимания
во-вторых, в некоторых случаях может привести к непредсказуемым последствиям
в-третьих, всегда есть другой вариант...в данном примере сначала тупо написать printf("ошибка"); а затем просто break также можно в различных ситуациях поступить по-разному, к примеру,когда мне нужно было открывать файл, просил путь до него, проверял на существование, если нету, спрашивал нужно ли переуказать путь, если да, то снова выполняется функция эта (получается рекурсия), если же на какомто шаге (ну пускай пользователь 100 раз перевводил, ему надоело) выбрал не надо переуказывать, функция передает false всем предыдущим...и программа завершается