将Last元素设置为NULL

Abd*_*man -1 c++ oop dynamic-memory-allocation

我有一个对象类数组,我想将最后一个indexi分配给NULL我有以下代码,但它给出了一个错误

DNA 是一个班级

allRightSequences 是一个向量

DNA* newDNA = new DNA[allRightSequences.size()];

newDNA [allRightSequences.size()] = NULL; << this line gives an error
Run Code Online (Sandbox Code Playgroud)

Pet*_*ker 5

NULL是一个宏,在适当的情况下,将扩展为可以被视为空指针常量的东西.所以你可以用它来设置一个指针值:

int *ip = NULL; // okay
Run Code Online (Sandbox Code Playgroud)

但是,newDNA不包含指针; 它包含类型的对象DNA.暂时忘掉阵列.问题是这样的:

DNA dna = NULL;
Run Code Online (Sandbox Code Playgroud)

除非DNA有一个可以使用任何NULL扩展调用的构造函数,否则这将不起作用.

如果你真的需要在数组的末尾有一个标记,你需要创建一个指针数组.但你真的不需要这个.使用std::vector<DNA>,跟踪您的大小.