[Incompleted]

CCF NOI1097 试题,本人的源码:

Ubuntu Pastebin​paste.ubuntu.com

Ubuntu Pastebin

Ubuntu Pastebin: SourceCodebyJulianDroid​paste.ubuntu.com

满分代码:

https://blog.csdn.net/tigerisland45/article/details/71038551​blog.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函数 - 恋恋美食的个人空间 - OSCHINA​my.oschina.net

memcpy函数_[PART][BUG][MSVCRT][C][CCF NOI1097] 关于memcpy的坑相关推荐

  1. 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 ...

  2. c语言中memcpy函数_带有示例的C中的memcpy()函数

    c语言中memcpy函数 memcpy()函数 (memcpy() function) memcpy() is a library function, which is declared in the ...

  3. memcpy函数_如何理解c语言中的回调函数

    在计算机程序设计中,回调函数,或简称回调,是指通过函数参数传递到其它代码的,某一块可执行代码的引用.这一设计允许了底层代码调用在高层定义的子程序. 这段话不是那么好理解,不同语言实现回调的方式有些许不 ...

  4. C语言之memcpy函数

    昨天自己动手实现memcpy这个函数,用一个例程试了一下,结果正确,满心欢心,可是有些地方想不明白,于是百度了一下,结果自己写的函数简直无法直视. 觉得还是写个总结,以示教训. 先贴上我自己的函数: ...

  5. C语言 memcpy 函数 - C语言零基础入门教程

    目录 一.memcpy 函数简介 二.memcpy 函数实战 1.memcpy 函数简单使用 2.strcpy 函数属于字符串拷贝 3.memcpy 函数属于内存拷贝 4.memcpy 函数注意崩溃问 ...

  6. c语言memcpy函数源代码,memcpy函数-memcpy函数,C语言

    本教程分享:<memcpy函数>, memcpy是memorycopy的缩写,意为内存复制,在写C语言程序的时候,我们常常会用到它.它的函原型如下:. void * memcpy ; .如 ...

  7. c语言memcpy是什么,C语言memcpy函数的用法

    介绍 memcpy是memory copy的缩写,意为内存复制,在写C语言程序的时候,我们常常会用到它.它的函原型如下: void *memcpy(void *dest, const void *sr ...

  8. java中相当于memcpy的函数_(C语言)memcpy函数原型的实现

    在网上看到一道题,实现一个memcpy函数,于是查了一下memcpy的函数原型,如下: void* memcpy(char *strDest, const char *strSrc, int Coun ...

  9. strcpy,strncpy和strncpy_s的区别 strncpy函数与memcpy函数

    首先说下strcpy strcpy()是依据源串的\0作为结束判断的,不检查copy先的Buffer的Size,如果目标空间不够,就有BufferOverflow问题. strncpy的原型为: ch ...

最新文章

  1. android studio数据库存储数据,如何使用API​​ 23在android studio中的数据库中存储数据?...
  2. node.js linux shell,bash – Node.js Shell脚本和参数
  3. Python 入门建议
  4. mysql默认排序规则_mysql 字符集与排序规则的简单了解
  5. OpenCV亮度和对比度调整的实例(附完整代码)
  6. 关于货仓选址问题的方法及证明(在数轴上找一点使得该点到所有其他点的距离之和最小)...
  7. 拆解Mate 30 Pro,内部双重散热、铜管一体紫色防滚架,太酷了!
  8. 关于go指针在方法or函数中这件事
  9. 「ECharts」交互 API (echarts、echartsInstance)
  10. 简明人体结构(一):人体结构学习方式的整体引导
  11. 谷歌html编辑器代码,一行代码让谷歌浏览器变成在线编辑器
  12. csma研究背景_CSMA/CD协议的特点
  13. 苹果账号总说连接服务器时出错,苹果手机连接iTunes时老是提示 “连接到AppleID服务器时出错”,怎么处理?...
  14. Web前端——JavaScript 的基础总结
  15. macOS Mojave 10.14.6 18G103 正式版 with Clover 5091原版镜像[双EFI双平台终极版]
  16. ADNI-python实现批量nii和dcm文件转换为png图像
  17. 我命由我不由天,我的UI我做主「定制Spring Boot Admin UI的页面」- 第298篇
  18. NONMEN软件概览及数据文件
  19. 微积分 | 函数连续与间断点
  20. 集成OpenLDAP与Kerberos实现统一认证(一):整合后台数据库

热门文章

  1. 改造一下jeecg中的部门树
  2. Android获取手机联系人或通讯录的基本信息(如姓名、电话)
  3. cesium事件简单全面描述
  4. 支付宝小程序中Navigator和导航栏之间的区别以及用法场景的分析
  5. SQL Server 日志清理、数据文件收缩
  6. mongo php update 写法,mongodb update 字符 操作
  7. MySQL之表结构设计
  8. java导出excel文件名_怎么解决java导出excel时文件名乱码
  9. .Net 中的封装知识点
  10. maya python 创建求_如何使用python在Maya中创建列表