我试图更改我在启动时定义的“static char *”的值,我是从函数内部执行的,当此函数返回 var 时,我试图重新设置该值不保留
例子:
static char *X = "test_1";
void testFunc()
{
char buf[256];
// fill buf with stuff...
X = buf;
}
如果不对 buf 使用 static,我如何才能实现这一点?我应该使用另一种数据类型吗?如果有,是哪一个?
最佳答案
行 X = buf
设置指针 X
指向数组 buf
的第一个元素。当函数返回时,buf
超出范围并且不能再被使用,所以此时指针是无用的。
除非你有特定的理由在你的程序中使用原始 C 字符串,使用 std::string
容器,然后你可以简单地返回一个 std::string
和不用担心自己动态分配和管理字符串的内存。
关于c++ - 如何更改函数中的值或静态 char*? C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2933554/