首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#编程在VS25中调试 一个结构体数组赋值时,出现奇怪有关问题,给其中一个数组元素的某个结构体成员赋值时,其它数组元素的某个结构体成员值自动改变了

2013-10-18 
C#编程在VS25中调试 一个结构体数组赋值时,出现奇怪问题,给其中一个数组元素的某个结构体成员赋值时,其它

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];
导致所有的结构体引用了相同的数组

热点排行