Dev - C++ - Operaciones con apuntadores

 
Vista:
Imágen de perfil de Luisa Maria

Operaciones con apuntadores

Publicado por Luisa Maria (2 intervenciones) el 07/05/2015 18:39:05
quisiera saber como se realiza una operacion simple, como una suma o una resta con un arreglo dinamico. No es igual a cuando se suma un vector dinamico.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{
   string *apuntador=NULL;
   int suma=0;
   int tam;
   int dato;
   cout<<"cuantos datos desea ingresar?"<<endl;
   cin>>dato;
   tam=dato;
   apuntador = new string [tam];
   for(int i=0; i<tam; i++)
   {
      cout<<"Ingrese el dato "<<i+1<<endl;
      cin>>apuntador[i];
   }
   cout<<"Usted ingreso: "<<endl;
   for(int i=0; i<tam; i++)
   {
      cout<<apuntador[i] <<endl;
   }
   for(int i=0; i<tam; i++)
   {
      suma=suma+apuntador[i]; //AQUI ESTA EL ERROR  
   }
   cout<<suma<<endl;
   system("pause");
}


Agradezco la ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Operaciones con apuntadores

Publicado por nn (1 intervención) el 07/05/2015 20:07:47
creo que el error es definir string *apuntador=NULL;
debería ser int *apuntador=NULL; y luego apuntador = new int [tam];
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Luisa Maria

Operaciones con apuntadores

Publicado por Luisa Maria (2 intervenciones) el 07/05/2015 23:48:38
voy a intentarlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Operaciones con apuntadores

Publicado por Rene gar (50 intervenciones) el 08/05/2015 02:47:53
Hechale ganas Luisa casi porque casi no hay programadoras

Bueno ya viendo tu codigo tiene unos detalles
me imagino que estas creando un arreglo dinamico en primer lugar el puntero no tiene que ser *string sino *int
ademas cada vez que creas un puntero o arreglo dinamico con new siempre tienes que liberar la memoria con delete

porque lo que hace new es pedirle a la maquina que te resever memoria para uso pero despues que hagas todo el proceso la tienes que regresar a la computadora es como si te prestara memoria por un tiempo

si son punteros simples usa delete y si son arreglos dinamicos como en tu caso delete[], ademas no uses system("pause") ya que no es recomendable utiliza mejor cin.get();


te dejo este codigo haber si te ayuda saludos...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include<iostream>
using namespace std;
 
 
int main(){
 
  int *apuntador=NULL;
  int suma=0, tam;
 
  cout<<"Cuantos datos desea ingresar "<<endl;
  cin>>tam;
 
  apuntador=new int[tam];//creamos el arreglo de punteros
  cout<<endl;//salto de linea
 
  for(int i=0;i<tam;i++){
     cout<<"Ingrese el valor "<<i+1<<endl;
     cin>>apuntador[i];
  }
 
  cout<<"\nUsted ingreso: ";
  for(int j=0;j<tam;j++){
    cout<<apuntador[j]<<" ";
    suma=suma+apuntador[j];
  }
 
  delete[] apuntador;//tenemos que liberar la memoria del arreglo de punteros
 
  cout<<endl;
  cout<<"la suma es "<<suma<<endl;
 
cin.get();
cin.get();//evitamos escribir system("pause")
return 0;}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar