1

コンパイル時の配列の形式を知っていれば、Javaでさまざまな長さの配列を作成する方法をすでに知っています。
元:

char[][] array = { { 'a', 'b', 'c'}, {'d'}, {'e', 'f'}}; //etc....

問題は、実行時に作成する必要があることです。コンパイル時にアレイに必要なサイズはわかりませんが、実行時にはわかります。

ここでの目的は、Javaで作成すること(およびJavaでの配列の利点(.lengthなど)を使用して)を作成し、Cで作成することです。

char[][] arrayC = malloc(outerArraySize);
for(int i = 0; i < outerArraySize; i++){
    arrayC[i] = malloc(innerArraySize[i]);
}

このCコードはここでアドホックに作成されているため、エラーが含まれている可能性がありますが、その目的は質問メッセージを明確にすることだけです。

とにかくこれをJavaで正しく行うには?

4

1 に答える 1

5

確かに-配列作成式を使用するだけです:

char[][] array = new char[outerArraySize][];
for (int i = 0; i < outerArraySize; i++) {
    array[i] = new char[innerArraySize[i]];
}

状況によっては、文字配列の代わりに文字列の使用を検討することもできます。

于 2012-10-14T07:05:36.990 に答える