Оцените код. Как можно заменить goto?
while (size <=0)//проверка ввода
        goto check;//в случае неудачи, переход по метке check на 40 строку
этоif (size <= 0)
    break;goto mark;
это просто continue; в первом случае и просто ничего во втором.
Почитайте что-нибудь о структурном программировании.
Что бы лучше понять методы структурного программирования, просто запретите себе использовать goto. Вы быстро с ним освоитесь, когда будете пытаться придумать способ обойтись без goto.