首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我试图在字符串中添加一个字符数组,使字符串与操作符overloading+保持完整

我试图在字符串中添加一个字符数组,使字符串与操作符overloading+保持完整
EN

Stack Overflow用户
提问于 2013-08-08 23:22:56
回答 2查看 96关注 0票数 1

这是我的密码..。给我一个警告,说'str‘引用与局部变量'str’相关联的堆栈内存返回.此外,我想确定我的逻辑是好的,或者如果有一个更简单的方法,我会非常感激一些帮助学习更多的方法。谢谢!

代码语言:javascript
复制
void CopyString(char *s)
{
    delete szArr;
    if (s)
    {
        szArr = new char[strlen(s)+1];
        strcpy(szArr,s);
    }
    else
    {
        szArr = new char[1];
        szArr[0]=0;
    } 
}


MyString& operator+(char *s){
    if (!s)
        return *this;
    char *tmp=new char[strlen(szArr)+strlen(s)+1];
    strcpy(tmp, szArr);
    strcat(tmp, s);
    MyString str(tmp);
    delete tmp;
    return str;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-08 23:25:46

您正在返回对str的引用,它是函数中的一个局部变量。

返回一个副本:MyString operator+(char *s)

票数 2
EN

Stack Overflow用户

发布于 2013-08-08 23:44:20

另一个小错误是strcpy(tmp,s),它不是strcat的correct.Change strcpy可能是正确的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18137865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档