Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Gerardovf78

#1

miembro *CrearMiembro(miembro *Lista, double telefono, int años, char name){

miembro *NuevoMiembro, *aux;
NuevoMiembro = (miembro *) malloc(sizeof(miembro));

if(NuevoMiembro != NULL){
NuevoMiembro->edad = años;
NuevoMiembro->telef = telefono;
//NuevoMiembro->nombre = name;
NuevoMiembro->sig = NULL;

El problema está en la línea comentada, y es el siguiente:
   [Error] invalid conversion from 'char' to 'char*' [-fpermissive]
#2
Buenas, estoy intentando hacer un programa que cree una lista y que permita introducir un número de teléfono, un nombre y una edad, sin embargo, aunque compile, se crashea nada más ejecutarlo.

El código es el siguiente:

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

struct Datos{
char *nombre;
int edad;
double telef;
struct Datos *sig;
};

typedef struct Datos miembro;

miembro *CrearMiembro(miembro *Lista, double telefono, int años, char name){

miembro *NuevoMiembro, *aux;
NuevoMiembro = (miembro *) malloc(sizeof(miembro));

if(NuevoMiembro != NULL){
NuevoMiembro->edad = años;
NuevoMiembro->telef = telefono;
NuevoMiembro->nombre = name;
NuevoMiembro->sig = NULL;
}
if (Lista == NULL){
Lista = NuevoMiembro;
}
else{
aux = Lista;

while(aux->sig != NULL){
aux = aux->sig;
}

aux = NuevoMiembro;
}

return Lista;
}

void ImprimirLista(miembro *Lista){

miembro *aux;

aux = Lista;

printf("La Lista contiene los siguientes datos: \n");

while(aux!=NULL){

printf("Edad: %d Telefono: %d Nombre: %s -> \n", aux->edad, aux->telef, aux->nombre);
aux = aux->sig;

}

printf("NULL");
}

int main(){

miembro *Lista1;
char Nombre[20];
int age;
double teleph;

Lista1->edad = 19;
Lista1->telef = 657485748;
Lista1->nombre = {"Alfonso"};

Lista1->sig = NULL;

printf("Indique el nombre que quiere introducir: ");
scanf("%s", Nombre);
printf("\n");

fflush(stdin);

printf("Indique el telefono: ");
scanf("%d", &teleph);
printf("\n");

printf("Indique la edad: ");
scanf("%d", &age);

Lista1 = CrearMiembro(Lista1, teleph, age, *Nombre);

ImprimirLista(Lista1);

system("PAUSE");
}


Creo que tiene que ver con la igualación de una cadena a un puntero, pero no sé solucionarlo. :huh: