strcpy_s Buffer is too small 出错根本原因

来源:互联网 发布:ptp700 标签编辑软件 编辑:程序博客网 时间:2024/05/29 09:07

  从字面意思就知道,要拷贝的目的空间太小。 只是对于这个拷贝的来源要心里有数才知道要改哪里。

今天我的程序在下午3点多写数据库的时候出现了这个提示,我之前有碰到过所以知道怎么修改。恩,不知道的google ,百度等都是正确的解决办法。改完之后程序写了一条记录到数据库中。很完美了,不是吗?

       但是,我的程序就启动不起来了。我第一感觉就是刚才改动的地方有点多,不知道改到什么地方了。查看一下备份。备份是好的,可以运行的程序。但是见鬼的,备份的也出错了。再找前天备份的,还是有错,都是这个错误。

不可能的呀,备份的时候程序都是好的呀?!

想不到在构造函数中什么时候用到了这个sprintf_s和strcpy_s 这个函数,应该没有的呀!即使有以前也没有错呀?

还有就是我的程序因为一些加密的dll不能调试,卧槽,只能注释代码,一条一条的排除语句。经过半个小时左右,啊还是别人帮忙的害羞,终于找到了。程序写了近一个月,之前的有用到这个函数的地方给忘了,况且被封装了并且我十分没有想到的,为什么会连带着所有的备份都不能运行的。他们之间有什么关联呢? 

看到错误的语句就知道了,是的,聪明的人早就明白了吧。数据库。他们公用一个数据库。今天修改的错误成功之哈偶写了一条信息到数据库。程序启动时从数据库中读数据。这条数据就是超过了我定义好的buffer空间大小。

所以,当提示这条  Buffer is too small 出错时,肯定是空间不足。如果你的空间分配很明显的话,很快就改好的,如果资源的来源不清晰,还是好好查查来源的时候有没有出错也是解决这个问题的根本。


0 0
原创粉丝点击