我曾偶尔遇到过这种代码 - 我怀疑创建者是/害怕表删除会迭代表和"性价比"(imho不会以任何方式完成)......有没有真正的从不使用表删除这里可能得到/考虑/想象的好处?
myClass** table = new myClass* [size];
... //some code that does not reallocate or change the value of the table pointer ;)
delete table; // no [] intentionally
Run Code Online (Sandbox Code Playgroud) 我的Win32 C++应用程序充当RPC服务器 - 它有一组用于处理请求的函数,RPC运行时创建一个单独的线程并调用该线程中的一个函数.
在我的函数中,我有一个std :: auto_ptr,它用于控制在编译时已知的堆分配的char []数组.它在使用VC++编译时非常有效,但根据C++标准,它是未定义的行为,我想摆脱它.
我有两个选项:std :: vector或堆栈分配的数组.由于我不知道为什么有堆分配的数组,我想考虑用堆栈分配的数组替换它.该数组是10k元素,如果RPC运行时生成一个堆栈非常小的线程,我可以假设它面临堆栈溢出.
我想检测一下典型地为线程分配了多少堆栈空间,以及我的函数有多少可用(它的被调用者肯定会消耗一些分配的空间).我怎么能这样做?