Logo Benny的博客

博客

奇·论

2023-01-02 13:38:44 By Benny
  1. 大部分OJ的内存都采取严格管理,比如定义a[10],则内存方面只剩请10个,若越界访问,代码直接崩溃。 但Helloworld就不一样,只要访问越界次数不多,不严重,连RE也不会判。例如用c语言风格输入:
    char str[114514];
    ...
    scanf("%s",str);
    ...
    其他OJ上,如输入字符串长度为114514,则崩溃RE(有时侥幸会WA),这是因为scanf会自动在字符串末尾加入'\0'作为结束符以保证其他操作如strlen就不会出问题。 但是,当长度为114514时,scanf会在str[114514]位置放置'\0',然后RE。 有时候侥幸过了,但printf也是基于'\0'的,所以在没存上'\0'时,它会报你100%WA。 可Helloworld就不太一样,他只看代码的反应,而且和本地运行相似,有时候应该判RE时不判,WA也不对。

评论

xushuoxin
python的检测简直比c++还无语
李则睿
恶 臭 字 符 串
李则睿
@Benny 省流:妈妈生的

发表评论

可以用@mike来提到mike这个用户,mike会被高亮显示。如果你真的想打“@”这个字符,请用“@@”。