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

Punteros y vectores - NOVATO

Estas en el tema de Punteros y vectores - NOVATO en el foro de C/C++ en Foros del Web. Hola: Estoy empezando con C++ y el ejercicio que tengo que hacer me dice que a través de un menú debe hacer que un usuario ...
  #1 (permalink)  
Antiguo 24/06/2016, 09:13
 
Fecha de Ingreso: agosto-2006
Mensajes: 159
Antigüedad: 18 años, 3 meses
Puntos: 4
Punteros y vectores - NOVATO

Hola:

Estoy empezando con C++ y el ejercicio que tengo que hacer me dice que a través de un menú debe hacer que un usuario pueda agregar personas, eliminarlas o mostrar todas las que tiene el programa en memoria.

La cosa está en que lo tengo que hacer con vectores, pero los vectores tienen una longitud predeterminada y no puede alterarse. Es por esto que tengo Persona personas[total];, en donde total es una variable global creada previamente y Persona una estructura.

Una de las funciones que estoy obligado a utilizar me dice que hay que desplazar los elementos del vector desde una posición X hacia la derecha. Bueno lo que tengo es esto:

Código C++:
Ver original
  1. Persona *moverDcha(Persona personas[], int pos) {
  2.     Persona *p = new Persona[total + 1];
  3.     for (int i = 0; i < total + 1; i++) {
  4.         if (i < pos) {
  5.             p[i] = personas[i];
  6.         } else if (i > pos) {
  7.             p[i] = personas[i - 1];
  8.         }
  9.     }
  10.     return p;
  11. }

Con la idea de crear un nuevo vector de Persona con la dimensión correcta. Cuando hago:

Código C++:
Ver original
  1. personas = moverDcha(personas, pos);

El compilador se vuelve loco a tirarme errores, pero no entiendo que pasa.

Código C++:
Ver original
  1. main.cpp:58:30: error: incompatible types in assignment of ‘Persona*’ to ‘Persona [(((sizetype)(((ssizetype)total) + -1)) + 1)]

Se supone que un vector es un puntero a la primera posición de un conjunto de espacios de memoria contiguos. Me puede explicar alguien el error y cómo debo hacerlo bien. Gracias.

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 11:38.