Managed C++中的字符串数组

Jon*_*ior 8 c++ arrays managed-c++ managed

我正在尝试用Managed C++编写一个应用程序,但我无法弄清楚如何声明一个字符串数组.

String ^ linet [];

抛出错误

'System :: String ^':本机数组不能包含此托管类型

所以我认为对托管数据类型有不同的方法.究竟是什么?

Nik*_*iki 9

你真的是指Managed C++吗?不是C++/CLI?

假设您实际使用的是C++/CLI(因为您发布了错误消息),有两种方法可以做到这一点:

array<String^>^ managedArray = gcnew array<String^>(10);
Run Code Online (Sandbox Code Playgroud)

将创建一个托管数组,即与C#中string []相同的类型.

gcroot<String^>[] unmanagedArray;
Run Code Online (Sandbox Code Playgroud)

将创建一个非托管的C++数组(我从来没有真正尝试过使用数组 - 它适用于stl容器,因此它也可以在这里工作).