C#编程在VS25中调试 一个结构体数组赋值时,出现奇怪问题,给其中一个数组元素的某个结构体成员赋值时,其它数组元素的某个结构体成员值自动改变了.
比如定义了结构体数组 oldpop[M个元素], 结构体中有一个数组 by[lchrom个元素]
for (i = 0; i < Constants.lchrom; i++)
for (j = 1; j < Constants.M; j++)
oldpop[0].by[i] += oldpop[j].by[i];
C#编程,执行完oldpop[0].by[i] += oldpop[j].by[i];后 oldpop[1,2,3,4……M-1].by[]全变为了
oldpop[0].by[]
求指教!!!
------解决方案--------------------问题在于你的oldpop数组中的所有成员都是引用到同一个对象上。
你应该让它们指向不同的对象。
------解决方案--------------------initialwx()
的最后一个for循环里
oldpop[i] = oldpop[0];
导致所有的结构体引用了相同的数组