Hola, sin usar el stack lo veo casi imposible, para hacer algo similar al goto se usan setjmp y longjmp ( llamados en la jerga NO LOCAL GOTO ) y se usan para simular excepciones tipo C++. Igual yo revisaria la lógica de tu programa, porque quedaria más elegante no usarlo.
Saludos !