c++ char*动态分配问题

2024年11月22日 01:26
有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;