gpt4 book ai didi

c++ - 为空字符赋值 *

转载 作者:太空宇宙 更新时间:2023-11-03 10:34:23 25 4
gpt4 key购买 nike

在下面的代码中:

const char * my_func1(char const *str)
{
const char *a = func(); // returns a char *, but I guess its ok to assign non-const to const
if(a == NULL)
{
MY_String b = str; //MY_String is an inhouse class with string functions
b.replace("\"", "\'"); //replace " with '
a = (const char *)b; //MY_string has an operator (const char *)
}

return a;
}

我遇到的问题是,当anull,并且它进入if block 时,对a 的赋值 无法正常工作,我得到了垃圾。是不是因为 anull 所以我不能给它赋值?我该如何解决这个问题?

最佳答案

我不知道 MY_String 是什么。但不管它是什么,它都是一个局部变量。所以它在 if block 的末尾超出了范围。因此,无论它的 operator const char* 做什么,一旦底层对象被销毁,它可能不会给您合理的结果。

唯一可行的方法是重载运算符动态分配一个新的 char 缓冲区,并返回指向它的指针。但那将是荒谬的。

关于c++ - 为空字符赋值 *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7277430/

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