Tengo el siguiente codigo programado en c:
#include
#include
#include "constants.h"
int
main (int argc, char *argv[])
{
char buffer[256];
int *numero = 0;
char * entrada = argv[1];
int resultat;
if (argc == 2)
{
resultat = string_a_enter (entrada, numero);
if (resultat == 0)
{
sprintf (buffer, "Cadena de caracters original = %s, valor = %d \n",
entrada, numero);
}
else
{
sprintf (buffer, "La cadena conte errors \n");
}
write (1, buffer, strlen (buffer));
}
else
{
sprintf (buffer, "Error en la entrada de parametres \n");
write (1, buffer, strlen (buffer));
}
}
int
string_a_enter (char *cadena, int *numero)
{
int i = 0;
int final = FALSE;
int negatiu = FALSE;
int retorno = -1;
while (!final)
{
if (cadena[i] == '\0'){
final = TRUE;
}
else
{
*numero = *numero * 10 + (cadena[i] - '0');
i++;
}
}
return (retorno);
}
y no entiendo porque al compilarlo me da un error de segmentacion. Lo he estado revisando y las posiciones recorridas del vector son correctas. La funcion string_a_enter no esta completa pero tiene lo necesario para funcionar y sin solucionar este problema no puedo continuar. A ver si alguien me puede hechar una mano