fly*_*out 3 c++ static types redefine
我正在尝试更改我在启动时定义的"静态字符*"的值,我是从函数内部执行的,当此函数返回var时,我尝试重新设置该值不会保留它.
例:
static char *X = "test_1";
void testFunc()
{
char buf[256];
// fill buf with stuff...
X = buf;
}
Run Code Online (Sandbox Code Playgroud)
如何在不使用静态buf的情况下实现这一目标?我应该使用其他数据类型吗?如果是的话,哪一个?
该行将X = buf指针设置为指向X数组的第一个元素buf.当函数返回时,buf超出范围并且不能再使用,因此指针在该点处无用.
除非您有特定的理由在程序中使用原始C字符串,否则使用std::string容器,然后您只需返回一个std::string而不用担心自己动态分配和管理字符串的内存.