在运行时调整char []的大小

HoN*_*uRu 3 c++

我需要调整一char array[size]char array[new_size]在运行时.

我怎样才能做到这一点?

Ste*_*ham 17

如果您使用的是std::vector<char>而不是数组,那么您想要的功能只是该类型的另一种方法.


小智 6

假设char array[size]malloc'ed ....你可以使用realloc

示例(摘自OpenBSD的手册页):

newsize = size + 50;
if ((newp = realloc(p, newsize)) == NULL) {
   free(p);
   p = NULL;
   size = 0;
   return (NULL);
}
p = newp;
size = newsize;
Run Code Online (Sandbox Code Playgroud)

  • 当然.它在矢量中更抽象.向量调用分配器,分配器可以执行任何需要的操作. (2认同)