ポインターがconstになるようにポインターの配列を定義する方法はありますか?
たとえば、char** array
定義されるのでarray[0]
はconstであり、array[1]
はconstなどですが、array
は非constであり、array[j][i]
は非定数ですか?
char* const * pointer;
。その後
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
配列が必要な場合は、char* const array[42] = { ... };
。
コンパイル時に配列のサイズがわからず、実行時に配列を割り当てる必要がある場合は、ポインタを使用できます
int n = ...;
char* const * pointer = new char* const [n] { ... };
...
delete[] pointer;
ご覧のとおり、手動で割り当てと割り当て解除を実行する必要があります。あなたがしたくないと言っていてもstd::vector
ただし、mordern C++の場合 std::vector
または スマートポインタ がより適切です。
このようなリクエストには、マジックツールcdecl
を使用できます(Web UIとしても利用可能 here ):
$ cdecl -+ %c++ mode
Type `help' or `?' for help
cdecl> declare x as array of const pointer to char
char * const x[]
cdecl>