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

Functions for dynamic memory allocation in C++

本文关键字:函数 分配 内存 动态 c++      更新时间:2023-10-16

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

char* init_char(uint64_t A, const char* init){
  char* ptr = new char[A];
  memset(ptr, '', 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指针。

我四处找过了,但没有找到。实际上,在其他一些帖子(动态内存分配函数),他们似乎做了一些非常相似的事情。我遗漏了什么吗?

谢谢,

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

你的问题可以归结为:

std::string initStr("initialitation string");
int a = 10;
std::vector<std::string> myStringArray(a, initStr);