c++ char*动态分配问题

2024-11-22 01:26:03
推荐回答(2个)
回答1:

test *p = new test;
p->ch = new char[]; //指明数组大小 比如p->ch = new char[128];
cin >> p->ch;

释放顺序:不能先释放p 也不应该只释放p 正确见下面
delete p->ch; //后申请先释放
delete p;

回答2:

肯定要出问题,在new的时候需要指定char数组的大小
test *p = new test;
p->ch = new char[1024];
cin >> p->ch;