我有:
int *ptr = new int[8];
delete[] ptr; // it ok, all ptr is delete;
Run Code Online (Sandbox Code Playgroud)
但如果我有:
int *ptr = new int[8];
ptr++;
delete[] ptr;
Run Code Online (Sandbox Code Playgroud)
我的问题:
是否delete[]删除所有ptr来自ptr[0]于ptr[7]或刚刚ptr[1]到ptr[7]?而且,如果它删减ptr[1]到ptr[7],如何delete[]知道真正的大小来删除这个时间呢?
我也尝试在我的模板c ++中使用typedef,但它不起作用,我不知道如何解决它.
template <typename object>
class MyVector
{
public:
typedef object* iter;
iter begin();
};
template <typename object>
iter MyVector<object>::begin() //here is problem
{
}
Run Code Online (Sandbox Code Playgroud)
你能告诉我为什么它不起作用吗?