问题描述
method tell-secret {
say self!Animal::secret
}
这是buff(即10)的正确数组初始化吗?或者我需要用17初始化。
解决方法
如果您要使用 换句话说, PSA:请勿使用,例如 您应该在C语言中编写的代码大致为: 其中不仅包含占位符参数,而且重要的是应包含的值。 在C ++中,您应该完全跳过此步骤,而是: C ++ 20引入了一个新的sprintf
进行覆盖,则它不需要特别包含任何内容,只需足够大以容纳数据。
= {0}
就足够了,在这种情况下实际上是可选的。
sprintf
的函数,缺少长度参数。而是在有长度参数的地方使用snprintf
和相关函数。如果不采取适当的预防措施,缓冲区溢出错误是C语言中的一个大问题。size_t buff_size = 255;
char buff[buff_size];
char* name = "Aadhi";
snprintf(buff,buff_size,"My names is %s",name);
std::string name = "Aadhi";
std::string message = "My name is " + name;
std::string
避免了几乎所有与缓冲区溢出错误有关的问题。std::format
功能,其功能与sprint
类似,但没有所有缓冲区溢出问题:std::string name = "Aadhi";
std::string message = std::format("My name is {}",name);