c++ - 检查结构数组是否为空

标签 c++ arrays struct

<分区>

好的,我有一个结构数组,(不是指向结构的指针数组),-lesson- 也是一个内部具有一些属性的类..

struct Mystruct{
    lesson* data;
    mystruct* next;
};    

class Myclass{
    public:
        Myclass();
        Mystruct getarray();
    private:
        Mystruct* array;
};
//in the myclass(); constructor I am doing;
Myclass* array = new Myclass[8];

我需要知道是否

array[i].next

是否为空,因为它不是指向结构的指针数组,我无法通过说来做到这一点;

if(array[i] == NULL)

if(&(array[i]) == NULL)

我该怎么做,我正在寻找的答案不是“它是一个结构数组,如果它是一个指针......你根本无法进行此检查......bla bla”。 请帮我找到一个方法,非常感谢所有的答案和方法..

**编辑:让我为您澄清一下,我需要检查一下;

array[i].next = new lesson(//parameters);

这个 Action 是否完成,我需要知道数组第[i]个元素中的“下一个”对象是否被初始化。 (数组的第 [i] 个元素包含一个链表,我正在搜索列表并向其中添加对象,如果列表头不为空,我必须找到一种方法来解决这个问题并在列表的末尾添加对象链表)

我怎样才能更清楚,但有些人只是点击不喜欢按钮而不是试图提供帮助,这是一个严肃的问题而不是巨魔,我尽可能多地尝试更清楚可以,但是你们不帮忙,点一下就走,我还能说什么...:/

我添加了更多代码供您想象情况。

最佳答案

is empty or not,

定义“空”。你的意思是未初始化?如果是这样,则只需将每个元素初始化为某个默认值。初始化指向 nullptr (C++11) 或 0 的指针,然后在使用它们之前进行检查。对象为“空”是没有意义的。

另请注意,MyClass 是……好吧,根本不是一个类。无论如何...

如果您只是使用默认构造函数,那有什么意义呢?当您分配此内存时,它将填充默认构造的对象,所以...

struct Mystruct
{
    Mystruct()
      : data(nullptr), next(nullptr) {}

    lesson* data;
    myclass* next;
}; 

现在您正确地将指针 xy 初始化为 null。


根据您的编辑...

EDIT: let me clarify it for you, I need to check that;

array[i].next = new lesson(//parameters); this action is done or not, I need to know that whether the "next" object in the arrays [i]th element is initialized.

是的,因为我们现在正确地初始化了成员变量...

if(!array[i].next)
    // next is null, initialize it

关于c++ - 检查结构数组是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13186740/

相关文章:

c++ - 为什么 CMAKE 找不到这些变量?

c++ - Qt Creator - 如何启用 float IDE 布局?

javascript - 从 _.map() 返回对象

c++ - 我在 C++ 中的二维数组高斯模糊函数有什么问题?

c++ - 从通过函数感知的结构复制数组

c - C中文件的结构内存分配,只有两个变量起作用

c++ - 通过 string::insert 插入 char 时出错

c++ - 我怎么知道 pthread_mutex_destroy 中的系统错误是什么?

java - 如何实现k路归并排序?

c# - 为什么泛型结构不能具有在 C# 中指定泛型类型的静态成员?