我试图在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)中,他们似乎做了一些非常相似的事情。我在这里错过了什么吗?
感谢,
答案 0 :(得分:4)
你的错误不是使用c ++。
你的问题可以简化为:
std::string initStr("initialitation string");
int a = 10;
std::vector<std::string> myStringArray(a, initStr);