Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/12/2011, 14:57
paranoya_32
 
Fecha de Ingreso: diciembre-2011
Mensajes: 1
Antigüedad: 12 años, 4 meses
Puntos: 0
Pregunta Error en la declaracion de apuntadores

Les muestro mi siguiente codigo, lo hice por secciones individuales y al unirlo, zaz! catastrofe. he trabajado muy poco tiempo con apuntadores y mi problema principal es con la declaracion de ellos.

Código C++:
Ver original
  1. #include<stdio.h>
  2. #include<conio.h>
  3. #include<stdlib.h>
  4. #include <iostream>
  5. using namespace std;
  6.  
  7. typedef struct Nodo{
  8.         int cve;
  9.         char nomb[30];
  10.         char desc[30];
  11.         float preC;
  12.         float preV;
  13.         int exis;
  14.         char prov[30];
  15.         Nodo *sig;
  16.         }Nodo;
  17.        
  18. typedef struct Nodo2{
  19.         int cve;
  20.         char nomb[30];
  21.         char dire[30];
  22.         int tele;  
  23.         char mail[30];
  24.         char cont[30];
  25.         Nodo2 *sig;  
  26.         }Nodo2;
  27.        
  28.        Nodo *inicio;
  29.        Nodo *final;
  30.        Nodo2 *inicio2;
  31.        Nodo2 *final2;
  32.  
  33. int Mdart();
  34. int Mdpro();
  35. int Rdinv();
  36. int Rdped();
  37. int Ayuda();
  38. int Acerca();
  39. int Altart();
  40. int Bajart();
  41. int Conart();
  42. int Altpro();
  43. int Bajpro();
  44. int Conpro();
  45. Nodo Buscar(char);
  46. Nodo2 Buscar2(char);
  47. Nodo Buscar3(char);
  48. Nodo2 Buscar4(char);
  49. int Ayuda();
  50. int Acerca();
  51.  
  52. int main(){
  53.     int opc;
  54.     inicio=NULL;
  55.     final=NULL;
  56.     inicio2=NULL;
  57.     final2=NULL;
  58.     printf("\t\t\t\tBienvenido\n");
  59.     getch();
  60.     do{
  61.              system("cls");
  62.              printf("1. Manejo de articulos     Ctrl+A\n");
  63.              printf("2. Manejo de proveedores   Ctrl+R\n");
  64.              printf("3. Reporte de inventario   Ctrl+I\n");
  65.              printf("4. Reporte de pedidos      Ctrl+P\n");
  66.              printf("5. Ayuda                       F1\n");
  67.              printf("6. Acerca de                   F2\n");
  68.              printf("7. Salir                      Esc\n");
  69.              opc=getche();
  70.              switch(opc){
  71.                          case 1:Mdart();
  72.                               break;
  73.                          case 18:Mdpro();
  74.                               break;
  75.                          case 9:Rdinv();
  76.                               break;
  77.                          case 16:Rdped();
  78.                               break;
  79.                          case 59:Ayuda();
  80.                               break;
  81.                          case 60:Acerca();
  82.                               break;
  83.                          case 27:printf("Hasta pronto");
  84.                               break;
  85.                          }
  86.              }while(opc!=27);
  87.     }
  88.     int Mdpro(){
  89.     }
  90. int Mdart(){
  91.     int opc2;
  92.     do{
  93.         system("cls");
  94.         printf("Opciones de manejo de Articulos   Tecla");
  95.         printf("1.-Alta de Articulos");
  96.         printf("2.-Baja de Articulos");
  97.         printf("3.-Consultar Articulos");
  98.         printf("4.-Volver a Menu Principal");
  99.         opc2=getche();
  100.              switch(opc2){
  101.                           case 4:Altart();
  102.                                break;
  103.                           case 5:Bajart();
  104.                                break;
  105.                           case 61:Conart();
  106.                                break;
  107.                           }
  108.         }while(opc2!=62);
  109. }
  110.  
  111. int Altart(){
  112.     Nodo *l,*n;
  113.     int x,i,dec;
  114.     char y[30];
  115.     float z;
  116.     do{
  117.           n=(Nodo*)malloc(sizeof(Nodo));
  118.           printf("Clave:");
  119.           scanf("%d",&x);
  120.           n->cve=x;
  121.           printf("Nombre:");
  122.           scanf("%s",&y);
  123.           n->nomb=y;
  124.           printf("Descripcion:");
  125.           scanf("%s",&y);
  126.           (n->desc)=y;
  127.           printf("Precio de Compra:");
  128.           scanf("%f",&z);
  129.           n->preC=z;
  130.           printf("Precio de venta:");
  131.           scanf("%f",&z);
  132.           n->preV=z;
  133.           printf("Existencia:");
  134.           scanf("%d",&x);
  135.           n->exis=x;
  136.           printf("Provedor:");
  137.           scanf("%d",&y[1000]);
  138.           *(n->prov)=y[1000];
  139.           if(inicio=NULL){
  140.                           inicio=n;
  141.                           inicio->sig=NULL;
  142.                           final=n;
  143.                           final->sig=NULL;
  144.                           printf("Articulo dado de alta");
  145.                           }
  146.           else{
  147.                l=inicio;
  148.                i=0;
  149.                while((l->sig!=NULL)&&(i=0)){
  150.                                             if(*(l->nomb)=*(n->nomb)){
  151.                                                                     i=1;
  152.                                                                     }
  153.                                             l=l->sig;
  154.                                             }
  155.                if(i=1){
  156.                        printf("El articulo que desea ingresar ya esta dado de alta");
  157.                        }
  158.                else{
  159.                     final->sig=n;
  160.                     final=n;
  161.                     final->sig=NULL;
  162.                     printf("Articulo dado de alta");
  163.                     }
  164.                }
  165.           printf("¿Desea dar de alta otro articulo?   1.-Si   2.-No");
  166.           scanf("%d",&dec);
  167.     }while(dec!=2);
  168. }

Como ven solo agregue la funcion dar de alta, ya que con esa se podra notar el error (ademas de que no vean las otras 360 lineas de codigo xd). El compilador que uso es Bloodshed Dev-C++ 4.9.9.2 y el error que me marca es C:\Users\HP\Desktop\correcion.cpp ISO C++ forbids assignment of arrays. Si notan son las declaraciones de los apuntadores. Me he partido la cabeza pensado en como arreglarlo pero las "soluciones" que he hecho solo ya no me hacen lo que necesito y crean bucles infinitos. Por favor un poco de ayuda con las declaraciones

Si no me di a entender por favor comenten.