i.e. -
int function(char* txt)
{
sprintf(txt, "select * from %s;", table);
//How do I set last char in buffer to NULL here?
}
因此,如果表中的文本长度为 500 个字符,而主文件中的 txt 仅定义为 100......
thanks.
你需要
- 向函数添加一个给出缓冲区大小的参数
- use
snprintf()
代替sprintf()
- 检查返回值
snprintf()
查看需要多大的缓冲区才能容纳所有格式化数据;如果它大于或等于缓冲区的大小,您应该按照您认为合适的方式处理它(缓冲区仍将以空终止,但内容将被截断以适合;这是否可以或错误完全取决于根据您的用例)
(并且您的函数需要返回类型......)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)