我有一个函数,它有一个 char*
作为参数来从函数内部接收一些信息。 (int foo(char* param1)
)
我如何确定这个参数有足够的分配空间来接收我需要输入的所有信息? 我可以确定它是否是有效指针,但我还没有找到确定分配给参数的大小/长度的方法。
我无法更改函数(无法添加另一个具有大小的参数)。
最佳答案
AFIAK,C++ 没有任何工具来验证分配给指针的空间量。如果输入指向以 NULL 结尾的字符数组(即 C 字符串),则可以使用 strlen()。通常,C 和 C++ 中的这些类型的函数必须详细记录参数的期望值。该函数通常是在假设调用者遵守记录的契约(Contract)的情况下实现的。
关于c++ - 发现 char* 参数大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12165585/