- 论坛徽章:
- 0
|
本帖最后由 HappyTigerYear 于 2010-02-25 12:15 编辑
在影片里,Neo最后说服了Matrix,拯救了人类,就是因为抓住了Matrix系统的逻辑漏洞。
bool Combat(&Neo, &Smith)
{
// Neo 和 Smith 激战...
// Smith调用memcpy函数,把Neo复制成自己:
memcpy(&Neo, &Smith, sizeof(Neo));
if(Neo胜利)
return true;
else
return false;
}
Matrix时刻删除没用没有目的的程序。
影片末尾,Matrix调用Combat函数,Neo和Smith开战...
战斗结束,Neo所在内存空间内的数据都被Smith用自己的数据填充了,Combat函数返回了false。Neo失败了,Matrix因此删掉了Neo,即冲洗掉了Neo内存空间数据,而实际上冲洗掉了Smith在Neo内存上的复本数据。Smith看到自己的一个复本被删除,惊疑自己怎么是无用的程序了,所以他那时非常惊恐。Matrix看到Smith的一个复本“自杀”(Matrix不知道这个Smith复本是自己一箭双雕杀死的,这是Matrix系统的一个逻辑漏洞),所以Matrix就认为Smith已是个无用的程序,就迅速接二连三地把Smith及每个Smith的复本删除(杀死)。
Smith死得很惨,比赵本山那一万元钱死的还惨。
因此,Neo就与Matrix达成了和平交易,拯救了人类。 |
|