a**U 发帖数: 115 | 1 char* p = new char[10];
delete p; 问题在那里?
如何delete这个内存那?delete[] p吗? | a********m 发帖数: 15480 | | a**U 发帖数: 115 | 3 delete p; 问题在那里?
是不是array中某个char是'\0', 比如说p[3]='\0',后面的就没有删掉?
还是说delete p就只是删了第一个char?
char* p = (char*)malloc(10);
如果用delete(p)是不是只是deallocate第一个char? | f*******n 发帖数: 12623 | 4 C++ standard就是说用new[]就要用delete[]。如果用delete就是undefined behavior。
【在 a**U 的大作中提到】 : delete p; 问题在那里? : 是不是array中某个char是'\0', 比如说p[3]='\0',后面的就没有删掉? : 还是说delete p就只是删了第一个char? : char* p = (char*)malloc(10); : 如果用delete(p)是不是只是deallocate第一个char?
| k******I 发帖数: 238 | 5 delete [] 要call 所有释放对象的destructor, 你这个是char所以可能会看不出差别
,但也是不对的。 |
|