如何在C++中‘realloc’?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (44)

我怎么能在C++中realloc?

提问于
用户回答回答于

用::std::vector!

Type* t = (Type*)malloc(sizeof(Type)*n) 
memset(t, 0, sizeof(Type)*m)

::std::vector<Type> t(n, 0);

t = (Type*)realloc(t, sizeof(Type) * n2);

t.resize(n2);

如果要将指针传递给函数,而不是

Foo(t)

使用

Foo(&t[0])
用户回答回答于

使用std::vector...

newdelete无法调整大小,因为它们分配的内存刚好足以容纳给定类型的对象。给定类型的大小永远不会改变。有new[]delete[]但几乎没有理由使用它们。

扫码关注云+社区

领取腾讯云代金券