C ++初始化对象数组

c++ initializing array of objects

我需要将字符串拆分为数组。当我尝试向数组添加新对象时,我得到 object reference not set to an instance of an object

array<d3^> ^pr_d3; //d3 - class
parts = sr->ReadLine()->Split(
    (array<String^>^)nullptr, 
    StringSplitOptions::RemoveEmptyEntries); //array<String ^> ^parts;

pr_d3[0] = gcnew d3(
     parts[0], parts[1], 
     parts[2],
     Convert::ToInt16(parts[3]), Convert::ToInt16(parts[4])); //error

Code on Ideon

您没有初始化数组 pr_d3

删除正确的代码,你现在有这个:

array<d3^> ^pr_d3;
pr_d3[0] = gcnew d3(...);

尝试访问 pr_d3[0] 时出错,但 pr_d3 仍然为空。

您需要使用 gcnew array<d3^>(<some array size>) 初始化 pr_d3,或者如果您不确定所需的大小,请改用 List<d3^>