elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda copia cadenas diferente tipo.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda copia cadenas diferente tipo.  (Leído 1,936 veces)
cartorami

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Duda copia cadenas diferente tipo.
« en: 2 Septiembre 2016, 14:24 pm »

Hola!

Primero de todo decir que estoy empezando a aprender a programar en C y que estoy muy (MUY) verde  :xD :xD , una vez dicho esto:

Estoy realizando un proyectito en C y en uno de los pasos tengo que copiar una cadena de un tipo definido como u8 que se corresponde con unsigned char en otra tabla de char.

Lo he intentado haciendo un cast en la función strcpy y utilizando la función memcpy, que he localizado por internet, pero se ve que no lo hago bien porque siempre me da core en ese paso.

Más concretamente, tengo lo siguiente:

typedef unsigned char u8;
typedef struct {
u8 tipo;
u8 nombre_fichero[100];
} APDU_PETICION;

char * nombre_del_fichero = NULL;

Como digo, mi intención es copiar el contenido de la tabla "nombre_fichero" contenida en la estructura, en la tabla nombre_del_fichero, pero soy incapaz.

Si alguien pudiese ayudarme a resolver este problema estaría muy agradecido  :P

Un saludo!



En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.670


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Duda copia cadenas diferente tipo.
« Respuesta #1 en: 2 Septiembre 2016, 14:35 pm »

Hola tienes que poner el código de como haces la copia de datos.

Me imagino que haces algo como:

Código
  1. memcpy(nombre_del_fichero,Var.Nombre_fichero,100);

Ahora me pregunto ¿Nombre del fichero ya está inicializado?

El detalle que nombre del fichero es un apuntador pero no veo que lo inicialises.

Deberia de quedar asi:

Código
  1. char * nombre_del_fichero = NULL;
  2. nombre_del_fichero = malloc(100);
  3. //aca el memcpy o strcpy
  4. //usamos la variable nombre_del_fichero
  5. free(nombre_del_fichero); // Hacer free a la variable una vez que no la utilicemos mas

Saludos


En línea

Publickey: 03b8b1bf1830c8d407870001ec0e7badb7a6632255fb0051284b14f53791bd6087
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW
cartorami

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Duda copia cadenas diferente tipo.
« Respuesta #2 en: 2 Septiembre 2016, 15:10 pm »

En principio lo intento haciendo uso de la función strcpy como sigue:
-----------------------------------------------------------------------
#define TAMANO 100

typedef unsigned char u8;

typedef struct {
u8 tipo;
u8 nombre_fichero[TAMANO]; //Esta cadena contiene "test.txt"
} APDU_PETICION;

APDU_PETICION peticion;

char * nombre_del_fichero = NULL;

strcpy(nombre_del_fichero, (char *) peticion.nombre_fichero);

---------------------------------------------------------------------------

con memcpy cambio la ultima línea por:

memcpy(nombre_del_fichero, peticion.nombre_fichero, TAMANO);

pero en ambos casos me salta un core.  :-\ :-\ :-\
En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.670


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Duda copia cadenas diferente tipo.
« Respuesta #3 en: 2 Septiembre 2016, 15:23 pm »

Ya lo INICIALIZASTE como te comente?
En línea

Publickey: 03b8b1bf1830c8d407870001ec0e7badb7a6632255fb0051284b14f53791bd6087
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW
cartorami

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Duda copia cadenas diferente tipo.
« Respuesta #4 en: 2 Septiembre 2016, 15:34 pm »

Pues sí, tienes toda la razón del mundo, no lo tenia inicializado  :-[ :-[ :-[ :-[ (fallos de novato  :P )

Mil gracias!!  ;D ;D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines