Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Error de compilación, sugerencias?

Estas en el tema de Error de compilación, sugerencias? en el foro de C/C++ en Foros del Web. Disculpen pero tengo un pequeño problema con un programa que estoy realizando, el caso es crear un programa, vaya la redundancia que capture las matriculas ...
  #1 (permalink)  
Antiguo 15/11/2012, 16:48
 
Fecha de Ingreso: noviembre-2012
Mensajes: 2
Antigüedad: 11 años, 5 meses
Puntos: 0
Error de compilación, sugerencias?

Disculpen pero tengo un pequeño problema con un programa que estoy realizando, el caso es crear un programa, vaya la redundancia que capture las matriculas y datos de un grupo de alumnos guardarlos y traerlos cuando se soliciten.
1.- podrían sugerirme una forma de guardar los datos para luego solicitarlos?
2.- Solo llevo la parte de capturar y todo eso solo que recibo errores a la hora de compilar podrían decirme en que estoy mal? .... les anexo el codigo que llevo hasta ahora:

Código C++:
Ver original
  1. //librerias
  2.  
  3. struct datos
  4. {
  5.     char nombre[20];
  6.     char apellidoP[20];
  7.     char apellidoM[20];
  8.     char materia[20];
  9.     int matricula;
  10.     int grupo;
  11. };
  12. int j=0;
  13. datos alumno[15];
  14. char menu;
  15. bool salir=false;
  16.  
  17.  
  18. void bienvenida()
  19. {
  20.     //solo algo que escirbi
  21. }  
  22.  
  23.  
  24. void captura()
  25. {
  26.     system("cls");
  27.         for(int i=0; i<3; i++){
  28.         j++;
  29.         cout<<"\n\tCaptura de datos"<<"\nIntroduzca su nombre: ";
  30.         _flushall();
  31.         gets(alumno[j-1].nombre);
  32.         cout<<"\nIntroduzca sus apellidos: ";
  33.         _flushall();
  34.         gets(alumno[j-1].apellidoP);
  35.         cout<<"\
  36.         cout<<"\nIntrduzca su edad: ";
  37.         _flushall();
  38.         cin>>(alumno[j-1].edad);
  39.         }
  40. }
  41.  
  42. void guardar()
  43. {
  44.     //si me recomiendan una forma facil de hacer esto seria perfecto
  45. }
  46.  
  47. void desplegar()
  48. {
  49.     system("cls");
  50.         cout<<"\nDespliegue de informacion";
  51.         for(int i=0; i<3; i++)
  52.         {
  53.             cout<<"\nContacto "<<i+1<<"\nNombre: "<<alumno[i].nombre<<"\nApellidos: "<<alumno[i].apellido<<"\nEdad: "<<alumno[i].edad<<endl;
  54.         }
  55.         _getch();
  56. }
  57.  
  58. void main(){
  59.     do{
  60. {
  61.     system("cls");
  62.     cout<<"\t\tMenu de opciones"<<"\na)Capturar datos"<<"\nb)Imprimir datos"<<"\nc)Salir\n";
  63.     cout<<"\nOprima a para escojer la opcion a y asi sucesivamente\n";
  64.     cin>>menu;
  65.     switch(menu)
  66.     {
  67.     case 'a':
  68.         bienvenida();
  69.         break;
  70.     case 'b':
  71.         captura();
  72.         break;
  73.     case 'c':
  74.         desplegar();
  75.         break;
  76.     case 'd':
  77.         salir=true;
  78.         break;
  79.     default: cout<<"Opcion no valida";
  80.         _getch();
  81.     }
  82. }
  83. }
  84.     while(!salir);
  85. }
  #2 (permalink)  
Antiguo 15/11/2012, 18:51
Avatar de cotolon  
Fecha de Ingreso: octubre-2012
Mensajes: 55
Antigüedad: 11 años, 5 meses
Puntos: 10
Respuesta: Error de compilación, sugerencias?

Lo de guardar es con ficheros, creando un alumnos.txt por ejemplo.

Y el error supongo son las comillas " "
si te fijas deja casi todo el programa en rojo. Creo que te falta o te sobra una " en algún lado
  #3 (permalink)  
Antiguo 16/11/2012, 06:08
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 13 años, 10 meses
Puntos: 73
Respuesta: Error de compilación, sugerencias?

Faltan las comillas de cierre del cout de la línea 35, a partir de aquí las comillas quedan descompensadas y por eso tirará errores a puñados. Empieza por corregir eso.

Saludos,
  #4 (permalink)  
Antiguo 18/11/2012, 11:24
Avatar de paula23andrea  
Fecha de Ingreso: noviembre-2012
Mensajes: 38
Antigüedad: 11 años, 5 meses
Puntos: 1
Respuesta: Error de compilación, sugerencias?

Para usar archivos o ficheros se usa la biblioteca <fstream.h> (flujo de archivos). En tu función guardar puedes incluir algo como esto.

Código C++:
Ver original
  1. void guardar()
  2. {
  3.  
  4. ofstream sale("datos.txt");
  5.  
  6. for(int i=0; i<3; i++)
  7. {
  8.   sale<<"\nContacto "<<i+1<<"\nNombre: "<<alumno[i].nombre<<"\nApellidos: "<<alumno[i].apellido<<"\nEdad: "<<alumno[i].edad<<endl;
  9.  
  10. }
  11. }


Y eso te crea el txt con los datos que envias.
Suerte!
  #5 (permalink)  
Antiguo 18/11/2012, 11:43
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Error de compilación, sugerencias?

Para guardar datos y recuperarlos de forma elegante puedes usar una base de datos, ya sea un standalone (gdbm o sqlite) o algo que funcione por red (p.ej. mysql, con servidor local o con acceso remoto que te permite generar consultas desde tu aplicacion de escritorio o desde una aplicacion web de pc o de dispositivo movil): te ahorra el trabajo de serializar las consultas y seguramente tendrá un mejor control de errores (y queda mas 'fashion' cuando creas un producto que trabaja en nube con acceso remoto a datos actualizados en linea y vendes la moto que quieras que una simple aplicacion que trabaja con un txt plano)

Saludos
vosk
  #6 (permalink)  
Antiguo 11/12/2012, 17:03
 
Fecha de Ingreso: noviembre-2012
Mensajes: 2
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Error de compilación, sugerencias?

Gracias (algo tarde por cierto .-.) no se como se me pudo pasar lo de las comillas. Btw reescribí el código en su totalidad pero ahora tengo otros problemas me tira un error en un void.
Aquí el estado actual del código..

Código C++:
Ver original
  1. //librerias
  2.  
  3. struct estructura{
  4.     char Nombre[30];
  5.     char ApellidoP[30];
  6.     char ApellidoM[30];
  7.     double matri;
  8.     double grupo;
  9.  
  10.     double Mate;
  11.     double Historia;
  12.     double Dibujo;
  13.     double Relleno;
  14.     double Progra;
  15.     double Origami;
  16.     double Masmate;
  17. } Alumnos[30];
  18. estructura auxiliar;
  19.  
  20. int cont=0;
  21. char op;
  22. bool byebee=false;
  23.  
  24.  
  25. void save()
  26. {
  27.     ofstream archivo("Textito.txt",ios::out);
  28.     int i=0;
  29.     for(int i=0;i<cont;i++)
  30.    {archivo<<Alumnos[i].matri<<"\n";
  31.     archivo<<Alumnos[i].grupo<<"\n";
  32.     archivo<<Alumnos[i].Historia<<"\n";
  33.     archivo<<Alumnos[i].Dibujo<<"\n";
  34.     archivo<<Alumnos[i].Relleno<<"\n";
  35.     archivo<<Alumnos[i].Progra<<"\n";
  36.     archivo<<Alumnos[i].Origami<<"\n";
  37.     archivo<<Alumnos[i].Mate<<"\n";
  38.     archivo<<Alumnos[i].Masmate<<"\n";
  39.     archivo<<Alumnos[i].Nombre<<"\n";
  40.     archivo<<Alumnos[i].ApellidoP<<"\n";
  41.     archivo<<Alumnos[i].ApellidoM<<"\n";
  42.    
  43.     archivo<<cont<<"\n";
  44.    } archivo.close();
  45. }
  46.  
  47. void leer()
  48. {
  49.     if(cont<30){
  50.     int i=0;
  51.     ifstream archivo("Textito.txt");
  52.     if(archivo.good()){
  53.     while(!archivo.eof())
  54.     {
  55.        
  56.         archivo>>Alumnos[i].Nombre;
  57.         archivo>>Alumnos[i].ApellidoP;
  58.         archivo>>Alumnos[i].ApellidoM;
  59.         archivo>>Alumnos[i].matri;
  60.         archivo>>Alumnos[i].grupo;
  61.         archivo>>Alumnos[i].Historia;
  62.         archivo>>Alumnos[i].Dibujo;
  63.         archivo>>Alumnos[i].Relleno;
  64.         archivo>>Alumnos[i].Progra;
  65.         archivo>>Alumnos[i].Origami;
  66.         archivo>>Alumnos[i].Mate;
  67.         archivo>>Alumnos[i].Masmate;
  68.         i++;
  69.        
  70.     }
  71.     }
  72.     else{
  73.         cout<<"Accion imposible."<<endl;
  74.     } cont=i-1;
  75.     archivo.close();
  76.     cont=i-1;
  77.     }
  78. }
  79.  
  80. int todo()
  81. {
  82.     system("cls");
  83.     while (cont<30){
  84.         cout<<"Elegiste la opcion de ingresar datos.\n"<<"Ingresa la matricula: ";
  85.         cin>>Alumnos[cont].matri;
  86.         cout<<"Ingresa el Nombre del Alumno: ";
  87.         cin>>Alumnos[cont].Nombre;
  88.         cout<<"\nIngresa el Apellido Paterno del Alumno: ";
  89.         cin>>Alumnos[cont].ApellidoP;
  90.         cout<<"\nIngresa el Apellido Materno del Alumno: ";
  91.         cin>>Alumnos[cont].ApellidoM;
  92.         cout<<"\nIngresa el Grupo del Alumno: ";
  93.         cin>>Alumnos[cont].grupo;
  94.         _flushall();
  95.  
  96.         cout<<"\nIngrese las calificaciones de las materias listadas:\n";
  97.         cout<<"Historia D8: ";
  98.         cin>>Alumnos[cont].Historia;
  99.         cout<<"\nLucha I: Dibujo~: ";
  100.         cin>>Alumnos[cont].Dibujo;
  101.         cout<<"\nMateria de relleno(cofAti): ";
  102.         cin>>Alumnos[cont].Relleno;
  103.         cout<<"\nProgramación: ";
  104.         cin>>Alumnos[cont].Progra;
  105.         cout<<"\nOrigami: ";
  106.         cin>>Alumnos[cont].Origami;
  107.         cout<<"\nMatemáticas: ";
  108.         cin>>Alumnos[cont].Mate;
  109.         cout<<"\nMás matematicas Dx: ";
  110.         cin>>Alumnos[cont].Masmate;
  111.         _flushall();
  112.         cont=cont+1;
  113.         return(cont);
  114.     }
  115. }
  116.  
  117. void ordenar(){
  118.     system("cls");
  119.     int fuc=cont;
  120.     for(int d=0;d<fuc;d++)
  121.     {
  122.         for(int f=0;f<fuc;f++)
  123.         {
  124.             if(f==(fuc-1))
  125.             break;
  126.             if(strcmp(Alumnos[f].matri,Alumnos[f+1].matri)>0)
  127.             {
  128.                 auxiliar=Alumnos[f];
  129.                 Alumnos[f]=Alumnos[f+1];
  130.                 Alumnos[f+1]=auxiliar;
  131.             }
  132.         }
  133.     }
  134.     fuc--;
  135.     _getch();
  136. }
  137.  
  138. void lista()
  139. {
  140.     ordenar();
  141.     cout<<"Lista de Alumnos\n";
  142.     for(int i=0;i<cont;i++)
  143.     {
  144.         cout<<"Alumno: "<<Alumnos[i].Nombre<<endl;
  145.         cout<<"Apellido Paterno: "<<Alumnos[i].ApellidoP<<endl;
  146.         cout<<"Apellido Materno: "<<Alumnos[i].ApellidoM<<endl;
  147.         cout<<"Matrícula: "<<Alumnos[i].matri<<endl;
  148.         cout<<"Grupo: "<<Alumnos[i].grupo<<endl;
  149.  
  150.         cout<<"Calificaciones"<<endl;
  151.         cout<<"Historia D8:: "<<Alumnos[i].Historia<<endl;
  152.         cout<<"Dibujo~: "<<Alumnos[i].Dibujo<<endl;
  153.         cout<<"Materia de relleno(cofAti): "<<Alumnos[i].Relleno<<endl;
  154.         cout<<"Programación: "<<Alumnos[i].Progra<<endl;
  155.         cout<<"origami: "<<Alumnos[i].Origami<<endl;
  156.         cout<<"Matemáticas: "<<Alumnos[i].Mate<<endl;
  157.         cout<<"Más Matemáticas Dx: "<<Alumnos[i].Masmate<<endl;
  158.        
  159.     }
  160.     system("pause");
  161. }
  162.  
  163. void promedio()
  164. {
  165.     double pd=0;
  166.     system("cls");
  167.     char src[10];
  168.     cout<<"Escogio la opcion de Promedio General.\n Ingrese la matricula del estudiante: ";
  169.     cin>>src;
  170.     for(int i=0; i<=30; i=i)
  171.     {
  172.         if (strcmp(src,Alumnos[i].matri)==0)
  173.         {
  174.             cout<<"\n Los Datos del estudiante son: ";
  175.             cout<<"\nNumero: "<<i+1;
  176.             cout<<"\nMatricula :"<<Alumnos[i].matri;
  177.             cout<<"\nNombre: "<<Alumnos[i].ApellidoP<<" "<<Alumnos[i].ApellidoM<<" "<<Alumnos[i].Nombre;
  178.             cout<<"\nGrupo: "<<Alumnos[i].grupo<<"\n";
  179.             cout<<"\nEl promedio general del alumno es: ";
  180.             pd=Alumnos[i].Historia+Alumnos[i].Dibujo+Alumnos[i].Relleno+Alumnos[i].Progra+Alumnos[i].Origami+Alumnos[i].Mate+Alumnos[i].Masmate;
  181.             pd=pd/7;
  182.             cout<<pd;
  183.             if(pd<=69)
  184.                 cout<<"\nEl Estudiante"<<Alumnos[i].Nombre<<"ha reprobado";
  185.             else
  186.                 cout<<"\nEl Estudiante"<<Alumnos[i].Nombre<<"ha aprobado";
  187.             break;
  188.         }
  189.         else
  190.         {
  191.             i++;
  192.         }
  193.         if (i>30)
  194.         {
  195.             cout<<"\nNo se encontraron coincidencias en el registro";
  196.         }
  197.     }
  198.     system("pause");
  199. }
  200.  
  201. void mod()
  202. {
  203.     int ento=0;
  204.     system("cls");
  205.     char modificar[30];
  206.     cout<<"Ha decidido Modificar los Datos.\n"<<"Favor de Ingresar la matricula del estudiante: ";
  207.     cin>>modificar;
  208.     for(int i=0;i<30;i++){
  209.         if (strcmp(modificar,Alumnos[i].matri)==0){
  210.             cout<<"\nNombre: "<<Alumnos[i].Nombre;
  211.             cout<<"\nApellidos: "<<Alumnos[i].ApellidoP<<" "<<Alumnos[i].ApellidoM;
  212.             cout<<"\nGrupo: "<<Alumnos[i].grupo;
  213.             cout<<"Calificaciones:\n"<<"\nHistoria: "<<Alumnos[i].Historia;
  214.             cout<<"\nDibujo~: "<<Alumnos[i].Dibujo;
  215.             cout<<"\nMateria de relleno(cofAti): "<<Alumnos[i].Relleno;
  216.             cout<<"\nProgramación: "<<Alumnos[i].Progra;
  217.             cout<<"\nOrigami: "<<Alumnos[i].Origami;
  218.             cout<<"\nMatemáticas: "<<Alumnos[i].Mate;
  219.             cout<<"\nMás matemáticas Dx: "<<Alumnos[i].Masmate;
  220.             _flushall();
  221.             cout<<"¿Seguro que desea editar?\n";
  222.             cout<<"1.Si\t2.No";
  223.             cin>>ento;
  224.             switch(ento){
  225.             case 1:{
  226.                 system("cls");
  227.                 cout<<"Elegiste editar\n";
  228.                 cout<<"Nuevo Nombre: ";
  229.                 cin>>Alumnos[i].Nombre;
  230.                 cout<<"\nNuevo Apellido Paterno: ";
  231.                 cin>>Alumnos[i].ApellidoP;
  232.                 cout<<"\nNuevo Apellido Materno: ";
  233.                 cin>>Alumnos[i].ApellidoM;
  234.                 cout<<"\nNueva matricula: ";
  235.                 cin>>Alumnos[i].matri;
  236.                 cout<<"\nNuevo Grupo: ";
  237.                 cin>>Alumnos[i].grupo;
  238.                
  239.                 cout<<"Calificaciones\n";
  240.                 cout<<"Historia D8: ";
  241.                 cin>>Alumnos[cont].Historia;
  242.                 cout<<"\nLucha I: Dibujo~: ";
  243.                 cin>>Alumnos[cont].Dibujo;
  244.                 cout<<"\nMateria de relleno(cofAti): ";
  245.                 cin>>Alumnos[cont].Relleno;
  246.                 cout<<"\nProgramación: ";
  247.                 cin>>Alumnos[cont].Progra;
  248.                 cout<<"\nOrigami: ";
  249.                 cin>>Alumnos[cont].Origami;
  250.                 cout<<"\nMatemáticas: ";
  251.                 cin>>Alumnos[cont].Mate;
  252.                 cout<<"\nMás matematicas Dx: ";
  253.                 cin>>Alumnos[cont].Masmate;
  254.                 system("cls");
  255.                 break;
  256.                    }
  257.             case 2:{
  258.                 system("cls");
  259.                 cout<<"No se editaron los datos... ";
  260.                 ento=ento+1;
  261.                 break;
  262.                    }
  263.             default:{
  264.                 system("cls");
  265.                 cout<<"Las unicas opciones son 1 y 2";
  266.                 _getch();
  267.                 ento=0;
  268.                     }
  269.             }
  270.         }
  271.     }
  272.     system("cls");
  273. }
  274.  
  275. void eraser()
  276. {
  277.     system("cls");
  278.     char izard[10];
  279.     int eresante=0;
  280.     cout<<"Ha ingresado al sistema de eliminación de datos.\n"<<"Por favor ingrese la matrícula: ";
  281.     cin>>izard;
  282.     for(int i=0;i<30;i++)
  283.     {
  284.         if(strcmp(izard,Alumnos[i].matri)==0){
  285.             cout<<"\nNombre: "<<Alumnos[i].Nombre;
  286.             cout<<"\nApellidos: "<<Alumnos[i].ApellidoP<<" "<<Alumnos[i].ApellidoM;
  287.             cout<<"\nGrupo: "<<Alumnos[i].grupo;
  288.             cout<<"Calificaciones:\n"<<"\nHistoria: "<<Alumnos[i].Historia;
  289.             cout<<"\nDibujo~: "<<Alumnos[i].Dibujo;
  290.             cout<<"\nMateria de relleno(cofAti): "<<Alumnos[i].Relleno;
  291.             cout<<"\nProgramación: "<<Alumnos[i].Progra;
  292.             cout<<"\nOrigami: "<<Alumnos[i].Origami;
  293.             cout<<"\nMatemáticas: "<<Alumnos[i].Mate;
  294.             cout<<"\nMás matemáticas Dx: "<<Alumnos[i].Masmate;
  295.             _flushall();
  296.  
  297.             while(eresante<1){
  298.                 cout<<"\n¿Realmente desea borrar los datos de este alumno?\n";
  299.                 cout<<"1.Si\t2.No";
  300.                 cin>>eresante;
  301.                 switch(eresante){
  302.                 case 1:
  303.                     {
  304.                         system("cls");
  305.                         strcpy(Alumnos[i].Nombre, " ");
  306.                         strcpy(Alumnos[i].ApellidoP, " ");
  307.                         strcpy(Alumnos[i].ApellidoM, " ");
  308.                         strcpy(Alumnos[i].matri, " ");
  309.                         Alumnos[i].grupo=0;
  310.  
  311.                         Alumnos[i].Historia=0;
  312.                         Alumnos[i].Dibujo=0;
  313.                         Alumnos[i].Relleno=0;
  314.                         Alumnos[i].Progra=0;
  315.                         Alumnos[i].Origami=0;
  316.                         Alumnos[i].Mate=0;
  317.                         Alumnos[i].Masmate=0;
  318.  
  319.                         cout<<"Datos Eliminados...";
  320.                         system("pause");
  321.                         break;
  322.                     }
  323.                 case 2:
  324.                     {
  325.                         system("cls");
  326.                         cout<<"No se eliminaron los datos...";
  327.                         eresante=eresante+1;
  328.                         break;
  329.                     }
  330.                 default:
  331.                     {
  332.                         system("cls");
  333.                         cout<<"Las unicas opciones son 1 y 2";
  334.                         _getch();
  335.                         eresante=0;
  336.                     }
  337.                 }
  338.             }
  339.         }
  340.     }
  341.     system("cls");
  342. }
  343.  
  344. //mi void main(no es problema esto)

principalmente me suelta problemas en el "ordenar y eraser"
  #7 (permalink)  
Antiguo 12/12/2012, 14:41
 
Fecha de Ingreso: agosto-2008
Mensajes: 240
Antigüedad: 15 años, 7 meses
Puntos: 6
Respuesta: Error de compilación, sugerencias?

Hola,

sé que ésta no es tu consulta, pero espero que te sirva de algo. No hace falta que uses variables de tipo double para las calificaciones. Con una de tipo float te sobra espacio. Te explico por qué.

El tipo float utiliza 4 bytes para almacenar (en formato de punto flotante) números en el intervalo +/- [ 1.2*10^(-38) , 3.4*10^(38) ]. El tipo double utiliza 8 bytes para almacenar (en formato IEEE de doble precisión) números en el intervalo +/- [2.3*10^(-308) , 1.7*10^(308) ].

Es decir, que tanto el tipo float como el tipo double te proporcionan una cantidad ingente de números posibles. Es cierto que el tipo double te da mucha más precisión que el tipo float, pero estás almacenando una calificación para la que no necesitarás más de 3 o 4 cifras significativas, precisión que el tipo float te asegura más que de sobra, y usando la mitad de memoria. Además, con el formato double necesitas el doble de tiempo para las operaciones, por lo que también estás desperdiciando tiempo de ejecución.

Un saludo,
gonzo
  #8 (permalink)  
Antiguo 12/12/2012, 15:46
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Error de compilación, sugerencias?

Estas enviando tipos double a la funcion strcmp cuando esta espera dos const char*, y por eso el compilador no acepta la llamada; este es el prototipo de strcmp

Código:
int strcmp ( const char * str1, const char * str2 );

"...principalmente me suelta problemas en el 'ordenar y eraser'..."
Te suelta problemas en todos los strcmp por no usar los tipos correctos.

Saludos
vosk
  #9 (permalink)  
Antiguo 14/12/2012, 02:46
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 10 meses
Puntos: 127
Respuesta: Error de compilación, sugerencias?

Hola seanmilecín (igual eres un compañero, si no eres ignóralo).

Si lo editas por Visual Studio te indica a cada momento si los tipos introducidos corresponden con los solicitados en el prototipo de la función.

Si el argumento ha de ser un puntero a un tipo tiene que ser un puntero a un tipo. Siempre los arrays a char son punteros per sé por lo que no hace falta indicar el puntero de forma explícita.

char a[] = "Ejemplo";

a es un puntero hacia un array de chars por lo que a es válido como argumento que solicite un puntero hacia este tipo.

const char * const p[2] = { "chars", "chars2"};

Eso sería un array de punteros hacia chars y cada una de las entidades literales de chars son en sí arrays de chars (es una excepción) y por tanto punteros porque todas las referencias a arrays son punteros en sí mismos salvo que no sean literales.

char a[1] = {0x0f};

En el caso anterior es un array no literal de chars, así que se indica tradicionalmente entre { y }.

Entonces strcmp admitiría una referencia directa a los arrays de char

Código C++:
Ver original
  1. char a[] = "asd";
  2. char b[] = "asd";
  3. char *d = a;
  4. int c = strcmp(a,b);
  5.  
  6. int c = strcmp(a,d);

a y b son punteros hacia char, tal y como lo especifica el prototipo. d sería un puntero hacia char por lo que es equivalente.

Código HTML:
Ver original
  1. int strcmp ( const char * str1, const char * str2 );

Esto sucede porque const char *const p = arraychar es similar a const char *const p = &arraychar[0] por lo que se crea otro puntero en lugar de hacer un puntero de un puntero, como pareciera.

Un saludo.
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor

Última edición por dontexplain; 14/12/2012 a las 03:48

Etiquetas: c++
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:27.