你正在用这个malloc
调用做的是分配一个指针数组node
.
要在C++中动态分配数组,请使用new[]
like
queue->array = new node*[queue->size]{};
上面的语句分配了一个queue->size
指针数组node
,并且默认初始化每个指针,这意味着它们都是空指针(因此在分配后你不需要循环).
请记住,您分配的所有内容都new[]
必须取消分配delete[]
.
现在我们已经解决了您的问题,正确的解决方案是使用std::vector
而不是像您一样动态分配内存.
我还建议你不要使用指针,而是使用结构的实例.两者都适用于矢量,也更普遍.除了多态性之外,很少需要在现代C++中使用指针.
你正在用这个malloc
调用做的是分配一个指针数组node
.
要在C++中动态分配数组,请使用new[]
like
queue->array = new node*[queue->size]{};
上面的语句分配了一个queue->size
指针数组node
,并且默认初始化每个指针,这意味着它们都是空指针(因此在分配后你不需要循环).
请记住,您分配的所有内容都new[]
必须取消分配delete[]
.
现在我们已经解决了您的问题,正确的解决方案是使用std::vector
而不是像您一样动态分配内存.
我还建议你不要使用指针,而是使用结构的实例.两者都适用于矢量,也更普遍.除了多态性之外,很少需要在现代C++中使用指针.