gpt4 book ai didi

c - 如何将 char* 复制到 const char*?

转载 作者:太空宇宙 更新时间:2023-11-04 06:16:56 24 4
gpt4 key购买 nike

我有一个无法修改的返回 char* 的函数。是否可以调用此函数并将返回值作为 const char* 存储在结构中?

我希望能够做到以下几点:

char * function(void);

struct myStruct
{
const char *myVal;
};

int main(int argc, char *argv[])
{
char *value = function();
struct myStruct *s = malloc(sizeof(struct myStruct));
s->myVal = value; // I want to be able to assign the value and
// immediately free value as per the next line.
free(value);

// now do some other stuff with myStruct

// eventually free s
free(s)

return 0;
}

我希望能够将“值”分配给 s->myVal 然后立即释放值而不丢失存储在 s->myVal 中的内容,就好像 s->myVal 包含一个字符串文字一样。

这可能吗?

最佳答案

是将指向非限定类型的指针分配给指向限定类型​​的指针变量

s->myVal = value;

是允许的。您可以随时添加限制,但不能取消限制。

但是你不应该释放数组,只要你使用它。

关于c - 如何将 char* 复制到 const char*?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43454121/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com