C/Visual C - problemas con registros

 
Vista:

problemas con registros

Publicado por santi (2 intervenciones) el 07/03/2005 08:18:02

A alguien se le ocurre pq no funciona esto,se supone que declaro un puntero a un registro y despues intento asignarle a uno de los campos del registro un (que es un puntero a char) una cadena y me da error
alguien sabe pq?.

muchas gracias a todos

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct celda
{
char *pal;
struct celda *sig;
}tele;
void main()
{
tele *nuevo;
char *pal;
char cad[50];
printf("introduzca la palabra");
scanf("%s",cad);
nuevo->pal=cad;
printf("%s",nuevo->pal);
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:problemas con registros

Publicado por vetustas (6 intervenciones) el 07/03/2005 09:04:14
Yo creo que es porque lo asignas directamente y con cadenas no se debe hacer esto. Usa la función strcpy. Yo pondria lo siguiente:

scanf("%s",cad);
strcpy(nuevo->pal,cad);

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problemas con registros

Publicado por JoseGR (41 intervenciones) el 08/03/2005 10:35:16
Hola, el problema es que no reservar memoria para la estructura 'nuevo'

nuevo = (tele *) malloc (sizeof(tele));
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problemas con registros

Publicado por Ismael (1 intervención) el 09/03/2005 11:05:37
Ademas, segun esta declarado pal, solo puede almacenar un caracter, no una cadena. O reservas memoria dinamicamente para ese miembro de la estructura o lo declaras como array de char: char pal[100];
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar