本文主要是介绍strcpy_s Buffer is too small 出错根本原因,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
从字面意思就知道,要拷贝的目的空间太小。 只是对于这个拷贝的来源要心里有数才知道要改哪里。
今天我的程序在下午3点多写数据库的时候出现了这个提示,我之前有碰到过所以知道怎么修改。恩,不知道的google ,百度等都是正确的解决办法。改完之后程序写了一条记录到数据库中。很完美了,不是吗?
但是,我的程序就启动不起来了。我第一感觉就是刚才改动的地方有点多,不知道改到什么地方了。查看一下备份。备份是好的,可以运行的程序。但是见鬼的,备份的也出错了。再找前天备份的,还是有错,都是这个错误。
不可能的呀,备份的时候程序都是好的呀?!
想不到在构造函数中什么时候用到了这个sprintf_s和strcpy_s 这个函数,应该没有的呀!即使有以前也没有错呀?
还有就是我的程序因为一些加密的dll不能调试,卧槽,只能注释代码,一条一条的排除语句。经过半个小时左右,啊还是别人帮忙的,终于找到了。程序写了近一个月,之前的有用到这个函数的地方给忘了,况且被封装了并且我十分没有想到的,为什么会连带着所有的备份都不能运行的。他们之间有什么关联呢?
看到错误的语句就知道了,是的,聪明的人早就明白了吧。数据库。他们公用一个数据库。今天修改的错误成功之哈偶写了一条信息到数据库。程序启动时从数据库中读数据。这条数据就是超过了我定义好的buffer空间大小。
所以,当提示这条 Buffer is too small 出错时,肯定是空间不足。如果你的空间分配很明显的话,很快就改好的,如果资源的来源不清晰,还是好好查查来源的时候有没有出错也是解决这个问题的根本。
这篇关于strcpy_s Buffer is too small 出错根本原因的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!