内存分配澄清

时间:2011-06-10 10:04:36

标签: c#

我试图以两种方式为数组设置负零。我需要知道如何为每种类型分配内存。

类型1:

double dArray=new double[2];
dArray[0]= 0;
dArray[1]=-0;

类型2:

double dArray=new double[2];
dArray[0]=0;
dArray[1]=-dArray[0];

任何人都可以澄清这一点。

谢谢, LOKESH。

2 个答案:

答案 0 :(得分:3)

代码无法编译。我想你的意思是

double[] dArray=new double[2];

double是一种值类型,它的存储空间与您分配给double值的方式没有区别。这两个代码示例(一旦修复)导致dArray的内存布局完全相同。

总是写-0.0会非常清楚。

请注意,Visual Studio始终将负零表示为0.0,这确实会让您对-0.0的存在产生信心!

这里有一些关于负零的相关讨论:How can I test for negative zero?

答案 1 :(得分:0)

我有兴趣理解你的用例,因为通常-0 = + 0 = 0。

在任何情况下,它们都会被视为价值类型。