Tengo una duda que no puedo lograr solucionar, y lo peor es que debe ser bastante sensilla.
Necesito crear un char x[variable].
La "variable" debe provenir a través de un parámetro de función , y el programa me dice que debe ser una constante. El problema es que aún siendo el parámetro enviado declarado "const" me sigue dando el mismo error.
char* devolverChar(const int a) {
char probando[a];
return *probando;
};
el error me dice que la variable a debe ser una constante...
Ayuda por favor!
Una constante, no const.
Una constante es, por ejemplo, que pongas:
char var[56];
Ese 56 es una constante.
Para un vector dinámico, tendrás que trabajar con memoria dinámica:
C++:
char* devolverChar(int a) {
char *probando = new char[a];
return probando;
}
C:
char* devolverChar(int a) {
char *probando = (char*) malloc(sizeof(char) * a);
return probando;
}
Luego, tendrás que liberar al memoria que reservaste con new/malloc. Para ello, delete/free:
C++:
char* ret = devolverChar(123);
// Aquí utilizas esa cadena todo lo que quieras...
delete[] ret; // Como son varias, ponemos delete[]. Si fuera solo 1, solo se pondría delete
C:
char* ret = devolverChar(123);
// Aquí utilizas esa cadena todo lo que quieras...
free(ret);
Muchas gracias por la respuesta ;D