c - `Tcl_Free()` 与 `free()` 有何不同?
问题描述
描述似乎几乎相同。两者之间是否有任何细微差别需要注意?为什么有人会使用一个而不是另一个?这个问题也可能适用于Tcl_Alloc()
和malloc()
。
解决方案
使用它们是因为 Tcl 支持在 Windows 上使用一个工具链构建,并加载使用不同工具链构建的 DLL。该场景的一个关键特征是,不同的工具链拥有自己的 C 库实现是相当普遍的,这意味着malloc()
. 您必须将malloc()
andfree()
与同一个库匹配,否则会遇到一些真正奇怪的故障(崩溃、内存泄漏等)。通过提供Tcl_Alloc
and Tcl_Free
(通常是非常薄的包装器),用户代码可以正确匹配分配和释放.
推荐阅读
- javascript - 与 javascript 中的 res.render 混淆
- python - 如何将当前用户传递给 Django_filters ModelChoiceFilter 查询集
- windows - 选择继续第一个
- awk - Bash 命令/脚本在某个字符上分割行
- c# - 文本框、按钮和进度条上的关键事件?
- ruby-on-rails - Ruby 将 nil 值添加到数组
- asp.net - 获取 DropDownList 选定值
- excel - Excel VBA 使用复制和粘贴循环遍历工作簿
- c# - CSVhelper 以任何方式忽略 CSV 中存在的“=”
- python - how to specify cell execution in jupyter notebook