在C++中,是否可以在给定 "高度 "和 "宽度 "的情况下,重载全局new和全局delete操作符来分配和重新分配2d内存块?
是否可以在C++中重载new操作符来分配类似2d数组的东西?
可以。
但我可以得到一些代码示例吗?
例子:在给定 "高度 "和 "宽度 "的情况下
std::unique_ptr<int[][10]> arr {new int[n][10]};
用给定的 "高度 "和 "宽度"?
只有当内部维度在编译时是恒定的,只有外部维度可以是动态的。只有外部维度可以是动态的。
很容易在动态的单维平面数组和多维数组之间进行转换。
不幸的是,全局new操作符只需要一个参数,所以你不能同时提供 "高度 "和 "宽度"。而且,全局newdelete操作符不仅会被你写的代码使用,也会被你使用的库使用,例如std::string,std::vector。所以,做这样的改变可能会引起恶劣的问题。