c++ - 如何更改函数中的值或静态 char*? C++

标签 c++ static types redefine

我试图更改我在启动时定义的“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/

相关文章:

java - 打破 Java 中的静态初始化 block

javascript - 强类型对象中的 TypeScript 循环约束

c++ - 我可以安全地使用#ifdef 来了解是否包含 c++ std header 吗?

c++ - ADO Recordset Field Value to C++ vector/array(捕获指针值)

c# - 静态类与实例类

function - 具有不同参数子类型的 Julia 函数

types - 可以访问结构成员的 'TypeId' 吗?

c++ - 无法使用 Atmel 寄存器编译 Arduino 代码

c++ - 无法通过 open() 创建的文件授予其他人对我的写入权限

asp.net-mvc - 使用 IIS7 访问 ASP.Net MVC 项目的静态内容