在函数周围传递C样式字符串

Ash*_*ley 0 c++

我有一个如下情况,我需要将一个C风格的字符串传递给一个函数并将其存储到一个需要稍后使用的容器中.容器正在存储char*.我无法弄清楚创建内存并将其存储到向量中的有效方法.与overloadedfunctionA(int)一样,我需要创建新的内存并复制到缓冲区,然后传入overloadedfunctionA(char*),再次创建新内存并再次复制到缓冲区.想象一下,我有很多int和其他类型的项目,我每次都做两次工作.解决它的一种方法是将逻辑从overloadedfunctionA(char*)复制到overloadedfunctionA(int).但它会导致很多重复的代码.有什么想法以更有效的方式做到这一点?

谢谢.

int main(){

overloadedfunctionA(5);
overloadedfunctionA("abc");

}

vector<char*> v1;

void overloadedfunctionA(int intA){
 char* buffer = new char[];
 convert int to char in buffer;
 overloadedfunctionA(buffer1); 
 delete buffer;

}

//act as base function that has a lot of logic need to be performed
void overloadedfunctionA(char* string1){
char* buffer = new char[];
copy string to buffer;
insert string into vector1;
}
Run Code Online (Sandbox Code Playgroud)

tda*_*ers 8

对于所有这些都是神圣的,只需在std::string内部使用.您可以std::string从a 分配给a const char*,并且可以std::string通过该c_str()方法访问底层C字符串.否则,您需要编写一个包装器类来为您处理内存分配,并在您的向量中存储该类的实例; 但是,std::string已经是这样一个包装类.