当前位置:  开发笔记 > 编程语言 > 正文

将复杂的malloc()转换为new()和suggsest很好的方法来轻松转换复杂的malloc

如何解决《将复杂的malloc()转换为new()和suggsest很好的方法来轻松转换复杂的malloc》经验,为你挑选了1个好方法。

你正在用这个malloc调用做的是分配一个指针数组node.

要在C++中动态分配数组,请使用new[]like

queue->array = new node*[queue->size]{};

上面的语句分配了一个queue->size指针数组node,并且默认初始化每个指针,这意味着它们都是空指针(因此在分配后你不需要循环).

请记住,您分配的所有内容都new[]必须取消分配delete[].


现在我们已经解决了您的问题,正确的解决方案是使用std::vector而不是像您一样动态分配内存.

我还建议你不要使用指针,而是使用结构的实例.两者都适用于矢量,也更普遍.除了多态性之外,很少需要在现代C++中使用指针.



1> Some program..:

你正在用这个malloc调用做的是分配一个指针数组node.

要在C++中动态分配数组,请使用new[]like

queue->array = new node*[queue->size]{};

上面的语句分配了一个queue->size指针数组node,并且默认初始化每个指针,这意味着它们都是空指针(因此在分配后你不需要循环).

请记住,您分配的所有内容都new[]必须取消分配delete[].


现在我们已经解决了您的问题,正确的解决方案是使用std::vector而不是像您一样动态分配内存.

我还建议你不要使用指针,而是使用结构的实例.两者都适用于矢量,也更普遍.除了多态性之外,很少需要在现代C++中使用指针.

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有