|
|
1
6
Win32 API不预先分配缓冲区,因为它想让调用代码选择如何提供缓冲区。它允许它们提供堆栈和各种基于堆的缓冲区。有几个地方可以提前知道缓冲区的最大大小,开发人员希望简单地使用基于堆栈的缓冲区。
文件系统是最好的例子,因为路径不会超过
C API分配内存的好处在于它简化了调用模式。Win32模式的缺点是,大多数情况下,您会两次调用API。第一次确定缓冲区的大小,然后第二次用适当大小的缓冲区。对于分配了API的缓冲区,只需要一个调用。 但缺点是您从调用者那里取消了分配的选择。此外,您必须传达您的选择,以便他们正确地释放API(例如,Windows可以从几个不同的地方进行分配)。 |
|
|
2
1
第二种方法有一些优势,比如
|
|
|
Fergus Johnson · 如何在戈兰“同步”切片和地图? 3 年前 |
|
|
ImgPrcSng · 静态库中的符号可见性和操纵 8 年前 |
|
|
Laurent Parmentier · 环回关系从不返回值 8 年前 |
|
|
Sujit · 搜索API的Spring Boot REST设计 8 年前 |
|
|
Lingxi · C中的默认参数vs重载++ 8 年前 |
|
|
Dominic Cabral · 如何在JMeter中测试异步回调? 8 年前 |