punteros - para que sirve const int en c++
¿Cómo definir una matriz de punteros const en C++? (2)
Para una solicitud de este tipo, puede utilizar la herramienta mágica cdecl
(también disponible como una interfaz de usuario web here ):
$ cdecl -+ %c++ mode
Type `help'' or `?'' for help
cdecl> declare x as array of const pointer to char
char * const x[]
cdecl>
¿Hay una manera de definir una matriz de punteros para que cualquier puntero sea constante?
Por ejemplo, ¿se puede definir una char** array
para que la array[0]
sea constante y la array[1]
sea constante, etc., pero la array
no sea constante y la array[j][i]
no sea constante?
char* const * pointer;
. entonces
pointer -> non-const pointer to const pointer to non-const char (char* const *)
pointer[0] -> const pointer to non-const char (char* const)
pointer[0][0] -> non-const char
Si desea una matriz, entonces char* const array[42] = { ... };
.
Si no conoce el tamaño de la matriz en tiempo de compilación y tiene que asignar la matriz en tiempo de ejecución, puede usar el puntero
int n = ...;
char* const * pointer = new char* const [n] { ... };
...
delete[] pointer;
Como puede ver, debe realizar la asignación y la desasignación manualmente. Incluso ha dicho que no desea std::vector
pero para Cernern C ++, usar std::vector
o punteros inteligentes es más apropiado.