C ++中动态内存分配的函数

时间:2014-03-18 12:34:36

标签: c++ dynamic-memory-allocation

我试图在C ++中设置一些通用函数来动态分配内存,这是我到目前为止所做的:

char* init_char(uint64_t A, const char* init){
  char* ptr = new char[A];
  memset(ptr, '\0', A*sizeof(char));

  if(init != NULL)
    strcpy(ptr, init);

  return ptr;
}

char** init_char(uint64_t A, uint64_t B, const char* init){
  char** ptr = new char*[A];
  for(uint64_t a = 0; a < A; a++)
    ptr[a] = init_char(B, init);

  return ptr;
}

这个想法是你只需传递维度(A,B)和初始化字符串(init),然后返回一个分配了所有内存的数组。但是,虽然第一个似乎正常工作,但第二个返回NULL指针。

我环顾四周但没有好处。实际上在其他一些帖子(Function for Dynamic Memory allocation)中,他们似乎做了一些非常相似的事情。我在这里错过了什么吗?

感谢,

1 个答案:

答案 0 :(得分:4)

你的错误不是使用c ++。

你的问题可以简化为:

std::string initStr("initialitation string");
int a = 10;

std::vector<std::string> myStringArray(a, initStr);