Cambié el código:
Código
Acá está la lista de errores:
#include <iostream> #include <cstdlib> #include <string> using namespace std; int main() { int l = 1; int a = 1; int *L = &l; int *A = &a; string libros[l]; string autores[a]; string entrada; int almacenar; for (*L = 1;; *L++) { cout << "Ingrese un libro o ingrese " << "-1 " << "para finalizar el programa: "; getline(cin, entrada); if (entrada == "-1") { almacenar = l; break; } else { libros[l] = entrada; cout << endl << "Ingrese el autor del libro " << '"' << libros[l] << '"' << ": "; getline(cin, entrada); autores[a] = entrada; *A++; cout << endl; } } for (*L = 1; l < almacenar; *L++) { cout << "El libro numero " << *L << " es: " << libros[l] << "." << endl; cout << "Su autor es: " << autores[a] << "." << endl << endl; } system("pause"); return 0; }
Error 1 error C2057: expected constant expression
Error 4 error C2057: expected constant expression
Error 6 error C2133: 'autores' : unknown size
Error 3 error C2133: 'libros' : unknown size
Error 2 error C2466: cannot allocate an array of constant size 0
Error 5 error C2466: cannot allocate an array of constant size 0
7 IntelliSense: expression must have a constant value
8 IntelliSense: expression must have a constant value
Por lo que entiendo, el problema es que en la linea 11 y 12, los valores de lo que está entre corchetes no son valores constantes, pero esa es la idea; que el usuario pueda agregar la cantidad de información que quiera y este mismo establezca un limite.