【发布时间】:2011-03-20 03:10:09
【问题描述】:
我有一个函数,它将作为参数给出的指针重新分配给新大小。现在,问题是 - 根据手册页 - realloc 需要一个由 malloc 或 calloc 之前返回的指针。
如何确保调用者传递的指针满足这些要求? 似乎没有内置的 C 机制(如类型限定符或其他东西)可以这样做。
现在,在我重新构建我的 API 之前(因为我认为现在的功能不够健壮) - 你能确认我没有遗漏什么吗?
提前致谢。
编辑: 一种解决方案显然是 malloc in 函数。问题在于调用者没有“看到”分配。因此,我需要在文档中明确说明他必须释放指针。这比期望他们提供一个 malloc 的指针(这意味着调用者必须释放它)更糟糕。
我真正想要的是在编译时阻止滥用的东西。那,还有一匹小马。 ;-)
【问题讨论】:
-
你需要让它真的那么简单吗?
-
至少我愿意,是的
-
既然你做不到,你可能应该停止担心,做一些更有趣的事情。人们可以颠覆您愿意尝试的任何和所有检查或预防措施。不要浪费时间预防。花时间大声而清晰地崩溃,这样他们就可以阅读错误消息并意识到自己的错误。