Ayuda con cola dinámica para calculadora de números complejos

Iniciado por evanderxzxtg, 20 Marzo 2019, 06:07 AM

0 Miembros y 1 Visitante están viendo este tema.

evanderxzxtg

Mi código compila, pero al ejecutar me marca bus error 10, no se que esta fallando.Estoy intentando capturar datos en una cola dinámica.
Mi código se va de dos partes, la biblioteca "Complejos.h" y la función principal main

Complejos.h

Last login: Tue Mar 19 22:45:55 on ttys000
MacBook-Pro-de-Evander:~ evander19tggmail.com$ cd desktop
MacBook-Pro-de-Evander:desktop evander19tggmail.com$ cd complejos3
MacBook-Pro-de-Evander:complejos3 evander19tggmail.com$ emacs Complejos.h





















void primero(numero *inicio,numero **tail)
{
  numero *aux=inicio;

}

void siguiente(numero *inicio,numero **tail){
  numero *aux=inicio;
  aux=aux->sig;
  **tail=*aux;
}

void imprimeNumero(numero *elemento)
{

  printf("\t %d----> %s----->%d",elemento->real,elemento->imaginaria,elemento->coefi\
cienteI);
}

Función main

#include<stdlib.h>
#include<stdio.h>
#include"Complejos.h"


int main(){

  complex();

}


evanderxzxtg


Mi código compila, pero al ejecutar me marca bus error 10, no se que esta fallando.Estoy intentando capturar datos en una cola dinámica.
Mi código se va de dos partes, la biblioteca "Complejos.h" y la función principal main

Complejos.h


typedef struct complejos{

  int real;
  char *imaginaria;
  int coeficienteI;
  struct complejos *sig;
}numero;

numero *  CrearNumero(int r,char *i, int c);
void insertar(numero *inicio, numero *elemento);
void imprimeNumero(numero *elemento);
int complex(void);

int complex(void){
  char opcion;
  int x,z;
  char y;
  printf("\tBienvenido a su calculadora de números complejos\n\n");
  printf("\t   Seleccione la operación que desea realizar:\n");
  printf("\t    a.Suma\n\n");
  printf("\t    b.Multiplicación\n\n");
  printf("\t    c.Potencia\n\n");
  printf("\tOpción:");
  scanf("%c",&opcion);
  switch(opcion)
    {
    case 'a':system("clear");
      printf("hola\n");
      numero *elemento;
      numero *inicio;
      numero *nuevo;
      scanf("%d  %d",&x,&z);
      elemento= CrearNumero(x,"i",z);
      insertar(inicio,elemento);
      imprimeNumero(elemento);
      printf("\n");
    }

  return 0;
}

numero* CrearNumero(int r,char *i, int c)
{
  numero* nuevo=(numero*) malloc(sizeof(numero*));
  nuevo->real=r;
  nuevo->imaginaria=i;
  nuevo->coeficienteI=c;
  nuevo->sig=NULL;
  return nuevo;
}

void insertar(numero *inicio, numero *elemento){

  numero *aux=inicio;
  while(aux->sig==NULL){
    aux=aux->sig;
  }
  aux->sig=elemento;
}

void primero(numero *inicio,numero **tail)
{
  numero *aux=inicio;

}

void siguiente(numero *inicio,numero **tail){
  numero *aux=inicio;
  aux=aux->sig;
  **tail=*aux;
}

void imprimeNumero(numero *elemento)
{

  printf("\t %d----> %s----->%d",elemento->real,elemento->imaginaria,elemento->coefi\
cienteI);
}



Función main

#include<stdlib.h>
#include<stdio.h>
#include"Complejos.h"


int main(){

  complex();

}


[/quote]