Hola David,
No he compilado el código, y tampoco estoy muy seguro del funcionamiento
de la función, pero si es parecido al de printf, entonces te falta un dato
entero después del nombre, ya que pones %d %s %d:
> cprintf("%d %s %d",i+1,estructura[i].nombre); > //por aqui anda
Espero que esto te ayude.
Zaka.