c++ - 发现 char* 参数大小

标签 c++ function parameters char

我有一个函数,它有一个 char* 作为参数来从函数内部接收一些信息。 (int foo(char* param1))

我如何确定这个参数有足够的分配空间来接收我需要输入的所有信息? 我可以确定它是否是有效指针,但我还没有找到确定分配给参数的大小/长度的方法。

我无法更改函数(无法添加另一个具有大小的参数)。

最佳答案

AFIAK,C++ 没有任何工具来验证分配给指针的空间量。如果输入指向以 NULL 结尾的字符数组(即 C 字符串),则可以使用 strlen()。通常,C 和 C++ 中的这些类型的函数必须详细记录参数的期望值。该函数通常是在假设调用者遵守记录的契约(Contract)的情况下实现的。

关于c++ - 发现 char* 参数大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12165585/

相关文章:

c++ - 错误 "expected primary-expression before int"

python - 尝试使用类函数在第二个类中调用该类中的另一个函数时获取 "AttributeError"

c++ - std::exception 在信号处理程序中调用 exit 时在全局线程对象上发生

c++ - 可以使用 std::uintptr_t 来避免越界指针算法的未定义行为吗?

c++ - 在 C++ 标准中,哪里声明了 const 右值引用不绑定(bind)到左值?

string - 在 rego 中将 2 个字符串连接在一起

linux - 前置符号链接(symbolic link)文件名

WiX 的 ExePackage 和 InstallCommand 的参数

javascript - 通过html传递表单参数

Swift - 参数必须符合协议(protocol)且检查为 kindOf 的函数