【发布时间】:2011-09-26 11:01:16
【问题描述】:
可能重复:
delete[] supplied a modified new-ed pointer. Undefined Behaviour?
假设我使用new char[number] 分配了一些字符。
是否可以只删除几个结束字符(例如delete[] (charArray + 4);,据说会取消分配除前四个字符之外的所有字符)?
我读到一些实现的new[] 存储在对象数组之前分配的对象数量,以便delete[] 知道要取消分配多少对象,所以按照我的要求做可能是不安全的。 .
谢谢。
编辑:
使用单独的 delete 语句手动删除不需要的结束字节是一种安全的方式来完成我的要求吗?
【问题讨论】:
标签: c++ memory new-operator delete-operator