Cita:
Iniciado por eferion El problema que tiene tu función es que, debido a las variables globales, es de un solo uso. Si la intentas usar más de una vez en la ejecución de un programa vas a tener problemas.
Tienes que intentar solucionar ese problema. Forma parte del reto ;)
Ya veo, modifique la función pero me he permitido agregar un parámetro mas a esta, espero que esto no sea un inconveniente :
Código C++:
Ver original#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char* diag(char* s, char* resultado, int i)
{
if (*s)
{
int j = 0;
j
= snprintf (resultado
, i
+ 2, "%*c\n", i
, *s
); diag (++s, resultado + j, ++i);
}
return resultado;
}
int main (void)
{
char cadena [] = "abcde";
char* resultado
= (char*)calloc(n
* n
+ 1, sizeof(char)); resultado = diag(cadena, resultado, 1);
return 0;
}
Saludos