weixin_44876770
沉吟丹青
采纳率100%
2020-09-01 10:21

c++error, 求大神看一下哪里有问题

已采纳

没有compile time error, 不知道哪里出了问题

#include
#include
using namespace std;

class HW1
{
public:
char *word;
HW1() { }
~HW1() {
delete [] word;
}
};

void foo(HW1 a)
{
//some operation here
}

int main()
{
HW1 a;
a.word = new char[80];
strcpy(a.word, "abc");
foo(a);
return 0;
}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • caozhy 回答这么多问题就耍赖把我的积分一笔勾销了 7月前
    #include <cstring> 
    #include <iostream>
    using namespace std;
    class HW1
    {
    public:
    char *word;
    HW1() { }
    ~HW1() {
    delete [] word;
    }
    };
    void foo(HW1& a) //加上
    {
    //some operation here
    }
    int main()
    {
    HW1 a;
    a.word = new char[80];
    strcpy(a.word, "abc");
    foo(a);
    return 0;
    }
    

    否则会导致拷贝了一个对象a,作为参数,指向相同的地址,两个对象调用delete导致重复释放

    点赞 评论 复制链接分享