82个回答

为什么制作组会把废案放在游戏文件里?

呓语幻梦
285个点赞 👍

你写过程序就会知道各种东西能有多离谱。

我在清理个人文件夹时发现了一个名为''artifact''的文件夹,内有同名的''artifact.sln''和''artifact.cpp''。

其中一段长这样:

int a[11];
for (int i = 0; i < 10; i++) {
    a[i] = 0;
}
for (int i = 0; i < 10; i++) {
    std::cout << a[i] << ' ';
}

十分确信这个名为a的数组没有在任何其它地方被应用,因为整个程序就不到100行。但是一旦删除,另一个名为''getlfts''的函数会在运行时报错(这个名为'a'的数组在''main''里)。

stack around the variable 'ls3' was corrupted.

谁能告诉我这两个变量有什么关系?

然后在排查这一出bug的时候,离谱的来了。

Visual Studio 2022上使用Debug模式时程序报错,Release模式不报错?

在IDE外双击运行Debug不报错,使用Visual Studio Code的组件检测,也没有出现数组越界。

然后我把那一段的注释删掉,重新编译,运行,数组越界没了?????

(重复上述流程)

(重复上述流程)

......

最终,我宣布我无法解决这个问题,哪怕这玩意儿看起来的确没有用,我也不可能删掉它。(反正这串儿代码保证了程序正常运行,那还是留着吧)

MiklyWay
自由评论 (0)
分享
Copyright © 2022 GreatFire.org