2 次元配列は、ポインターの配列と同じではありません。
最初のステートメントは、それぞれが 6 文字の 2 つの配列を 1つのメモリ ブロックとして作成します。そのステートメントを次のように置き換えます。
char (*array)[6] = new char [2][6];
2 番目のステートメントで準備完了です。忘れないで
delete [] array;
編集 0:
ええ、私は知っていたはずです:)コメントのあなたの質問に:
char**その後、パラメーターとして aを受け取る関数に配列を渡すにはどうすればよいですか?
あなたはそうしない。この形ではありません。のような C API のパラメーターのリストを作成する場合はexecve(2)、2 段階の初期化を行う必要があります。
// prototype of the function to call
void my_fancy_func( int argc, char* const argv[] );
char** my_argv = new char*[my_argc];
for ( i = 0; i < my_argc; i++ ) {
my_argv[i] = new char[arg_buffer_size];
snprintf( my_argv[i], arg_buffer_size, "%d", i );
}
my_fancy_func( my_argc, my_argv );