我正在尝试在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)中,它们似乎做了非常相似的事情。我在这里想念什么吗?
谢谢,
最佳答案
您的错误是不使用c ++。
您的问题可以简化为:
std::string initStr("initialitation string");
int a = 10;
std::vector<std::string> myStringArray(a, initStr);
关于c++ - C++中用于动态内存分配的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22479579/