#define size 64char buf [size + 1] = "";memset (buf,size + 1);
该工具的错误消息是:缓冲区溢出(数组索引超出界限):数组’buf’大小为1.数组’buf’可能使用0..64索引.
这合法吗?将字符数组赋值给空字符串是否真的导致其长度减少为单个字节,就好像它被定义为char buf [] =“”;?
解决方法 将“”分配给buf [size 1]不会重置buf的大小,但它没有意义,因为它复制了后续memset所做的一小部分(并且它会混淆你的静态分析工具 – 你可能想要提交一个针对它的错误报告). 总结以上是内存溢出为你收集整理的c – 这真的是缓冲区溢出吗?全部内容,希望文章能够帮你解决c – 这真的是缓冲区溢出吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)