应用程序将原有的CPU x86更改为AnyCPU导致奇妙的问题

本文详细介绍了在Win7 64位旗舰版项目中,更改项目属性导致内存空间变为NULL的问题,通过实例分析了byte[]变量在特定条件下被异常回收的现象,并提供了将目标平台更改为CPUx86的解决方案,避免了此类问题的发生。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

WIN7 64 位旗舰版 原本正常运行的项目,由于更改项目属性中的目标平台导致莫名其妙的问题,将原本分配过的内存空间变为NULL;

在项目中出现有违常理的错误,可能与项目中属性设置有关

例如自己在项目中遇到的问题

1  byte[] tempData = new byte[256];

2  其他代码(没有调用过tempData)

3  其他代码(没有调用过tempData)

4 tempData[0] = 1;

编译没有问题,当程序运行到代码4 行时 抛出未将tempData实例化异常 ,当使用断点调试运行,跟踪发现当运行完第二条代码后,tempData就变为null了。同时也启示我们,尽可能晚的,给变量申请内存空间,即当马上用到变量是,才分配,不然有可能出现上面的情况,内存被异常的回收。

解决方案

将项目属性中的生成中的目标平台由AnyCPU 更改为CPU x86

备注:在win7  32 系统上没有出现上述异常


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值