如何使用struct构造函数在结构中初始化指针阵列



我尝试了 memset喜欢

struct TreeNode {
    bool exist;
    bool word_ending;
    TreeNode* branches[3];
    TreeNode(): exist(true), word_ending(false) {
        memset(branches, NULL, sizeof(branches));
    }
};

但出现警告

warning: implicit conversion of NULL constant to 'int' [-Wnull-conversion]
        memset(branches, NULL, sizeof(branches));
        ~~~~~~           ^~~~
                         0
1 warning generated.

是否有其他方法可以将指针数组初始化为NULL

而不是使用memset,我们可以在成员初始化列表中初始化数组。如果我们使用

TreeNode(): exist{true}, word_ending{false}, braches{} {}

然后braches初始化为零。之所以起作用,是因为初始化列表中的每个缺少初始化器都会导致相应的元素为零初始化。

最新更新