• Viernes 8 de Noviembre de 2024, 15:33

Autor Tema:  no se pòr que este ejercicio no compila( memoria dinamica)  (Leído 1213 veces)

luchojimenez

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
no se pòr que este ejercicio no compila( memoria dinamica)
« en: Martes 14 de Septiembre de 2010, 16:35 »
0
mi solucion es  la siguiente
Código: C++
  1.  
  2. #include<iostream.h>
  3. #include<cstdio>
  4. #include<conio.h>
  5.  
  6.  
  7. using namespace std;
  8.  
  9. int main()
  10.  
  11. {
  12. int n,i;
  13. struct computador
  14. {
  15. char marca[20];
  16. char modelo[20];
  17. int calma;// capacidad de alamcenamiento
  18. int ram;
  19. }
  20. cout<<"Datos del pc"<<endl;
  21. cout<<"cuantos  pc desea ingresar"<<endl;
  22. cin>>n;
  23.  
  24. computador*compu=new int;
  25. for(i=1;i<=n;i++)
  26. {
  27. cout<<"n Dame la marca"<<endl;
  28. cin>>compu[i].marca;
  29. cout<<"n dame el modelo"<<endl;
  30. cin>>compu[i].modelo;
  31. cout<<"n  dame la cpacidad de almacenamiento"<<endl;
  32. cin>>compu[i].calma;
  33. cout<<"n Dame  capacidad memoria  Ram"<<endl;
  34. cin>>compu[i].ram;
  35.  
  36.  
  37. }
  38. clrscr();
  39. cout<<"DATOS ALMACENADOS DE LOS PC"<<endl;
  40. for(i=1;i<=n;i++)
  41. {
  42. cout<<compu[i].marca<<endl;
  43. cout<<compu[i].modelo<<endl;
  44. cout<<compu[i].calma<<endl;
  45. cout<<compu[i].ram<<endl;
  46. }
  47. system("pause");
  48. return 0;
  49. }
  50.  
  51.  
  52.  

el ejercicio es  el siguiente

Implemente un programa en C++ usando memoria dinámica con los operadores New y Delete para que imprima los datos básicos de 5 marcas comerciales de computadores, es decir (Marca, modelo, capacidad de almacenamiento, capacidad de memoria RAM instalada) para lo cual se requiere hacer usando una estructura llamada computador,  incluya variables de tipo apuntador. Como resultado se espera el código fuente debidamente documentado cada línea y la captura de pantalla de la imagen del resultado despues de la ejecución.

Cosmos009

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: no se pòr que este ejercicio no compila( memoria dinamica)
« Respuesta #1 en: Martes 14 de Septiembre de 2010, 17:33 »
0
Hola luchojimenez, al final de la creación de una struct deberías declarar variables en caso de no necesitarlas debes poner ; al final de la struct:

struct computador
{
char marca[20];
char modelo[20];
int calma;
int ram;
};  <----------así.
Además cuando creas el puntero para el new , tal vez seria mejor que declararas: new  computador[N],
Así debe de ir al menos a mi me funciona.

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: no se pòr que este ejercicio no compila( memoria dinamica)
« Respuesta #2 en: Martes 14 de Septiembre de 2010, 23:04 »
0
Además tienes que cambiar algunas cosas:

En lugar de:
Código: C++
  1.  
  2. computador*compu=new int;
  3.  
  4.  

Debería ser:
Código: C++
  1.  
  2. computador* compu = new computador[n];
  3. ...
  4. // Al final cuando ya no necesites "compu" tienes que liberar la memoria:
  5. delete[] compu;
  6.  
  7.  

Los arreglos en C, C++ están basados en 0, así que en lugar de:
Código: C++
  1.  
  2. for(i=1;i<=n;i++)
  3.  
  4.  

Tiene que ser:
Código: C++
  1.  
  2. for(i = 0; i < n; i ++)
  3.  
  4.