有人可以帮我摆脱这个 memset 吗?

Posted

技术标签:

【中文标题】有人可以帮我摆脱这个 memset 吗?【英文标题】:can anybody help me get rid of this memset? 【发布时间】:2019-04-08 22:09:48 【问题描述】:

这里是 Node 类,最后一行已经使用了 memset,所以我不想 无论如何都要使用它,有人可以帮助我吗?

class Node   
    public: 
    int key; 
    Node **front; 
    Node(int, int); 
    ; 

    Node::Node(int key, int level) 
     
    this->key = key; 
    front = new Node*[level+1]; 

    // here is memset i wanna remove *******
    memset(front, 0, sizeof(Node*)*(level+1)); 
;

【问题讨论】:

front = new Node*[level+1];更改为front = new Node*[level+1]; 或者使用std::vector而不是new[](无论如何你都应该这样做!),然后你可以在(重新)调整矢量大小时为新元素提供默认值 @RemyLebeau 他是将 Node 的向量存储在 Node 内,还是将 Node* 的向量存储在 Node 内?这看起来像是链表实现的一部分。 std::fill(front, front+level+1, nullptr); @Tzalumen 这看起来像一棵树。 【参考方案1】:

我只是想要一个简单的循环替换

for(size_t i = 0; i < level+1; i++)

    front[i]=NULL;

我可以改用上面的代码

【讨论】:

以上是关于有人可以帮我摆脱这个 memset 吗?的主要内容,如果未能解决你的问题,请参考以下文章

有人可以帮我处理这个崩溃报告吗

有人可以帮我在c#中解决这个问题吗

有人可以帮我解决这个 uibutton 错误吗? [复制]

这个解压包是做啥的?有人可以帮我理解几个字母吗?

有人可以帮我并行化这个 C++ 代码吗?

有人可以帮我修改这个 Excel VBA 代码吗?