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 originalPersona *moverDcha(Persona personas[], int pos) {
Persona *p = new Persona[total + 1];
for (int i = 0; i < total + 1; i++) {
if (i < pos) {
p[i] = personas[i];
} else if (i > pos) {
p[i] = personas[i - 1];
}
}
return p;
}
Con la idea de crear un nuevo vector de Persona con la dimensión correcta. Cuando hago:
Código C++:
Ver originalpersonas = moverDcha(personas, pos);
El compilador se vuelve loco a tirarme errores, pero no entiendo que pasa.
Código C++:
Ver originalmain.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.