配列の書き方が違う!
■プログラム
{
というような書き方をすると、コンパイルエラーが発生します。
error C2728: 'System::String' : ネイティブ配列はこのマネージ型を含むことはできません
{
String str[2];
}というような書き方をすると、コンパイルエラーが発生します。
error C2728: 'System::String' : ネイティブ配列はこのマネージ型を含むことはできません
□解決策
{
CLIのarrayを利用して記述するみたいです。
gcnewは、C++のnewの代わりになるようなものです。'gc'とは、garbage collection (ガーベージコレクション)の略みたいです。C++では、new - deleteの関係がありましたが、これ(gcnew)で取得した領域は、不要になったと判断されたらかってに開放されるのでdeleteがありません。つまり、メモリリークが発生しないということです。まあ、JAVAなんかで有名なので説明するまでも無いですね。
{
array<String>strAry = gcnew array<String^>(2);
}CLIのarrayを利用して記述するみたいです。
gcnewは、C++のnewの代わりになるようなものです。'gc'とは、garbage collection (ガーベージコレクション)の略みたいです。C++では、new - deleteの関係がありましたが、これ(gcnew)で取得した領域は、不要になったと判断されたらかってに開放されるのでdeleteがありません。つまり、メモリリークが発生しないということです。まあ、JAVAなんかで有名なので説明するまでも無いですね。
★[](角括弧)による配列記述は、array<>による記述にしろ。