我尝试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
?
答案 0 :(得分:4)
我们可以在成员初始化列表中初始化数组,而不是使用memset
。如果我们使用
TreeNode(): exist{true}, word_ending{false}, braches{} {}
然后braches
将初始化为零。这是有效的,因为初始化列表中每个丢失的初始化程序都会导致相应的元素初始化为零。