memcpy函数_[PART][BUG][MSVCRT][C][CCF NOI1097] 关于memcpy的坑
[Incompleted]
CCF NOI1097 试题,本人的源码:
Ubuntu Pastebinpaste.ubuntu.com
Ubuntu Pastebin
Ubuntu Pastebin: SourceCodebyJulianDroidpaste.ubuntu.com
满分代码:
https://blog.csdn.net/tigerisland45/article/details/71038551blog.csdn.net
在NOI官方OJ上,本人代码只得了50分(未优化,但是最后是WA)
而满分代码其实和本人的逻辑差不(hen)多。。。
本人枚举了1<n<300作为输入并将输出作为比较,发现从n=229开始出现分歧,本人的输出比标准输出少了第一位..
本人的输出:
标准输出:
可以发现,第二行开头的2没了。。
通过各种debug后发现在最后一次循环(n=228)时,Line 50后fin[]和q[]的值不一样。
而q[]中的正好是正确答案。
也就是说,memcpy少/错复制了一个item。
但是在其它例子中并没有发现异常。
此代码没有输出(已清空缓冲区)。
本人将最后两次memcpy之前的数据print出来(倒输出):
第一行为输入,第二~三行为pre[],第三~四行为fin[]。
看着似乎没有任何毛病。
n<229的数据都是正常的。
究其原因,memcpy是关键(废话)。
[寻找BUG]
Cygwin通过ldd查看gcc生成的exe所需要的库:
(include目录下是没有源码的)
前三个一看就知道是底层相关,直接pass
最后memcpy函数就在msvcrt.dll中。
将mscvrt.dll dump出来后用IDA读取,找到memcpy函数:
[未完待续]
【面试题】实现memcpy函数 - 恋恋美食的个人空间 - OSCHINAmy.oschina.net
memcpy函数_[PART][BUG][MSVCRT][C][CCF NOI1097] 关于memcpy的坑相关推荐
- 0.11内核rd_load@ramdisk.c中memcpy函数好像有bug
0.11内核rd_load@ramdisk.c中memcpy函数好像有bug,如: #define memcpy(dst,src,n) \ __asm__("cld;rep;movs ...
- c语言中memcpy函数_带有示例的C中的memcpy()函数
c语言中memcpy函数 memcpy()函数 (memcpy() function) memcpy() is a library function, which is declared in the ...
- memcpy函数_如何理解c语言中的回调函数
在计算机程序设计中,回调函数,或简称回调,是指通过函数参数传递到其它代码的,某一块可执行代码的引用.这一设计允许了底层代码调用在高层定义的子程序. 这段话不是那么好理解,不同语言实现回调的方式有些许不 ...
- C语言之memcpy函数
昨天自己动手实现memcpy这个函数,用一个例程试了一下,结果正确,满心欢心,可是有些地方想不明白,于是百度了一下,结果自己写的函数简直无法直视. 觉得还是写个总结,以示教训. 先贴上我自己的函数: ...
- C语言 memcpy 函数 - C语言零基础入门教程
目录 一.memcpy 函数简介 二.memcpy 函数实战 1.memcpy 函数简单使用 2.strcpy 函数属于字符串拷贝 3.memcpy 函数属于内存拷贝 4.memcpy 函数注意崩溃问 ...
- c语言memcpy函数源代码,memcpy函数-memcpy函数,C语言
本教程分享:<memcpy函数>, memcpy是memorycopy的缩写,意为内存复制,在写C语言程序的时候,我们常常会用到它.它的函原型如下:. void * memcpy ; .如 ...
- c语言memcpy是什么,C语言memcpy函数的用法
介绍 memcpy是memory copy的缩写,意为内存复制,在写C语言程序的时候,我们常常会用到它.它的函原型如下: void *memcpy(void *dest, const void *sr ...
- java中相当于memcpy的函数_(C语言)memcpy函数原型的实现
在网上看到一道题,实现一个memcpy函数,于是查了一下memcpy的函数原型,如下: void* memcpy(char *strDest, const char *strSrc, int Coun ...
- strcpy,strncpy和strncpy_s的区别 strncpy函数与memcpy函数
首先说下strcpy strcpy()是依据源串的\0作为结束判断的,不检查copy先的Buffer的Size,如果目标空间不够,就有BufferOverflow问题. strncpy的原型为: ch ...
最新文章
- android studio数据库存储数据,如何使用API​​ 23在android studio中的数据库中存储数据?...
- node.js linux shell,bash – Node.js Shell脚本和参数
- Python 入门建议
- mysql默认排序规则_mysql 字符集与排序规则的简单了解
- OpenCV亮度和对比度调整的实例(附完整代码)
- 关于货仓选址问题的方法及证明(在数轴上找一点使得该点到所有其他点的距离之和最小)...
- 拆解Mate 30 Pro,内部双重散热、铜管一体紫色防滚架,太酷了!
- 关于go指针在方法or函数中这件事
- 「ECharts」交互 API (echarts、echartsInstance)
- 简明人体结构(一):人体结构学习方式的整体引导
- 谷歌html编辑器代码,一行代码让谷歌浏览器变成在线编辑器
- csma研究背景_CSMA/CD协议的特点
- 苹果账号总说连接服务器时出错,苹果手机连接iTunes时老是提示 “连接到AppleID服务器时出错”,怎么处理?...
- Web前端——JavaScript 的基础总结
- macOS Mojave 10.14.6 18G103 正式版 with Clover 5091原版镜像[双EFI双平台终极版]
- ADNI-python实现批量nii和dcm文件转换为png图像
- 我命由我不由天,我的UI我做主「定制Spring Boot Admin UI的页面」- 第298篇
- NONMEN软件概览及数据文件
- 微积分 | 函数连续与间断点
- 集成OpenLDAP与Kerberos实现统一认证(一):整合后台数据库