我有一个函数将一个指针作为参数重新分配给一个新的大小。现在,问题是 - 根据手册页 - realloc
需要一个指针,该指针之前已由malloc
或calloc
返回。如何确保调用者传递malloc'd指针?
如何确保调用者传递符合要求的指针? 似乎没有内置的C机制(如类型限定符或其他)来做到这一点。
现在,在我调整我的API之前(因为我认为现在的功能不够强大) - 请确认我没有错过任何东西?
在此先感谢。
编辑: 一种解决方案显然是在功能对malloc 。问题在于调用者没有“看到”分配。因此,我需要在文档中明确地说出他必须释放指针。这比预期他们提供malloc'd指针更糟糕(这意味着调用者必须释放它)。
我真正想要的是在编译时阻止滥用。那,还有一匹小马。 ;-)
你需要使它真正是万无一失的? – Nyan 2010-07-23 14:43:06
至少我想,是的 – RWS 2010-07-23 14:45:45
因为你不能,你应该停止担心,做一些更有趣的事情。人们可以颠覆**任何**和**所有**您想要尝试的检查或预防。不要浪费时间来防止。投入大量的时间和清晰的声音,以便他们可以阅读错误信息并意识到他们的错误。 – 2010-07-23 17:04:07