elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  pregunta
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: pregunta  (Leído 2,114 veces)
alejandro5837

Desconectado Desconectado

Mensajes: 5


Ver Perfil
pregunta
« en: 27 Junio 2013, 04:44 am »

tengo un problema con este programa corre pero al fina me manda un mensaje de error donde dice que la variable h ha sido corrompida o algo asi me podrían ayudar
Código
  1. [
  2.  
  3. #include "stdafx.h"
  4. #include "conio.h"
  5. #include "stdio.h"
  6.  
  7.  
  8. void main()
  9. {
  10. int n,i,j,aux;
  11. char h;
  12. int *A;
  13. char *p;
  14.  
  15. printf("Ingresa el numero de datos que quieras en tu lista:   ");
  16. scanf ("%d",&n);
  17. A =new int [n+1];
  18.  
  19. printf("\n");
  20.  
  21. for(i=1;i<=n;i++)
  22. {
  23. printf("Ingresa la letra en la posicion %d es:",i);
  24. scanf("%s",&h);
  25. int x =  static_cast <int> ( h );
  26. A[i]=h;
  27. }
  28.  
  29. printf("\n");
  30. printf("\n");
  31.  
  32. for(i=1;i<=n-1;i++)
  33. {
  34. for(j=1;j<=n-1;j++)
  35. {
  36. if(A[j]>A[j+1])
  37. {
  38. aux=A[j];
  39. A[j]=A[j+1];
  40. A[j+1]=aux;
  41. }
  42. }
  43. }
  44. printf("\n Asendente \n");
  45. for(i=1;i<=n;i++)
  46. {
  47. printf(" %c \n",A[i]);
  48. }
  49. printf("\n Desedente \n");
  50.  
  51. for(i=n;i>=1;i--)
  52. {
  53. printf(" %c \n",A[i]);
  54. }
  55. delete [] A;
  56.  
  57.  
  58. getchar();
  59. getchar();
  60. }
  61.  
  62. ]


« Última modificación: 27 Junio 2013, 05:08 am por alejandro5837 » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: pregunta
« Respuesta #1 en: 27 Junio 2013, 04:47 am »

di el mensaje de error exacto, copia y pegalo porque así no es realmente util...


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
alejandro5837

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: pregunta
« Respuesta #2 en: 27 Junio 2013, 04:50 am »

este es el mensaje

Run-Time Check fallo # 2 - Pila alrededor de la variable "h" se corrompió.
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: pregunta
« Respuesta #3 en: 27 Junio 2013, 04:54 am »

no soy demasiado conocedor de c... pero esto me suena mal

Código:
A=h;

porque
Código:
char h;
int *A;

h es un caracter y A es un apuntador a un entero... creo que esos tipos no son compatibles
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
alejandro5837

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: pregunta
« Respuesta #4 en: 27 Junio 2013, 05:04 am »

  mm ok noce por que aparece así pero en mi código lo tengo
Código
  1. [ A[i]=h]
« Última modificación: 27 Junio 2013, 05:07 am por alejandro5837 » En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: pregunta
« Respuesta #5 en: 27 Junio 2013, 17:28 pm »

tengo un problema con este programa corre pero al fina me manda un mensaje de error donde dice que la variable h ha sido corrompida o algo asi me podrían ayudar
Ese programa tiene algunas deficiencias ya que no utiliza casi nada de C++. Por favor lee el tema |Lo que no hay que hacer en C/C++. Nivel basico|.

Cosas a cambiar hay a varias empezando por el nombre de los encabezados y la definición de la función main.

El error principal se encuentra en la linea:
Código
  1. scanf("%s",&h);
Ello porque el especificador "%s" es para leer una palabra, si quieres leer un carácter debes utilizar " %c".

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: pregunta
« Respuesta #6 en: 27 Junio 2013, 17:44 pm »

El programa este es un revuelto de c y c++ poco claro.

Lo primero que debes decidir es si programas en c o en c++... no queda muy bonito usar printf y scanf ( propias del lenguaje c ) con new y static_cast ( propias de c++ ).

Si usas c++ aprovecha sus características todo lo posible... en caso contrario casi mejor hazlo en c... mezclar de esta forma los dos lenguajes creo que solo sirve para que te lies más.

si decides hacerlo en c++ yo te propondría algunos cambios:

1. En vez de usar buffers usa vectores. Aprender a manejar la memoria es imprescindible... pero si no es estrictamente necesario dejar que la stl la maneje por ti te ahorrará muchos quebraderos de cabeza.
Código
  1. // c++
  2. std::vector<int> A;
  3.  
  4. // c
  5. int *A;
  6. A =new int [n+1]; // esta línea te sobraría ya que el vector libera la memoria por ti.
  7.  
  8. // c++
  9. A.push_back( h );
  10.  
  11. // c
  12. A[i]=h;

2. Usa las clases c++ para leer y escribir
Código
  1. // c++
  2. std::cout << "Ingresa el numero de datos que quieras en tu lista:   ";
  3.  
  4. //c
  5. printf("Ingresa el numero de datos que quieras en tu lista:   ");
  6.  
  7. // c++
  8. std::cin >> n;
  9.  
  10. // c
  11. scanf("%c",&h);

3. Elimina variables sin uso. ( char *p ). Esto no es propio de c++ sino una buena práctica de programación :)
En línea

alejandro5837

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: pregunta
« Respuesta #7 en: 28 Junio 2013, 01:26 am »

OK muchas gracias
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Una pregunta
Software
noeselmejor 2 1,958 Último mensaje 9 Septiembre 2003, 13:25 pm
por noeselmejor
pregunta
Software
..SnIgCiO.. 9 2,744 Último mensaje 9 Diciembre 2003, 11:23 am
por Songoku
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines