Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Por que esto no anda?

Estas en el tema de Por que esto no anda? en el foro de C/C++ en Foros del Web. #include <stdio.h> void strcopy(char *s, char *t); int main(int argc, char **argv) { char *destino; strcopy(destino, "Rodrigo"); printf("%s", destino); return 0; } void strcopy(char *s, ...
  #1 (permalink)  
Antiguo 22/04/2013, 08:50
 
Fecha de Ingreso: abril-2009
Mensajes: 25
Antigüedad: 15 años
Puntos: 0
Por que esto no anda?

#include <stdio.h>

void strcopy(char *s, char *t);

int main(int argc, char **argv)
{
char *destino;
strcopy(destino, "Rodrigo");
printf("%s", destino);
return 0;
}

void strcopy(char *s, char *t)
{
int i = 0;

while ((s[i] = t[i]) != '\0')
{
i++;
}
}

Es una simple funcion que imita el strcpy.
Pero me da Segmentation Fault.
Por que?
  #2 (permalink)  
Antiguo 22/04/2013, 09:50
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 11 años, 9 meses
Puntos: 28
Respuesta: Por que esto no anda?

No has reservado ningún espacio en destino.

Prueba con char destino[10]
  #3 (permalink)  
Antiguo 22/04/2013, 14:55
Avatar de ZeKi  
Fecha de Ingreso: noviembre-2012
Ubicación: Jaén
Mensajes: 61
Antigüedad: 11 años, 5 meses
Puntos: 6
Respuesta: Por que esto no anda?

Como te han dicho, pretendes meter una cadena de caracteres dentro de una zona de memoria que no tienes reservada para eso.

Etiquetas: funcion, int
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:42.