永发信息网

C#中给结构体内的数组赋值

答案:2  悬赏:10  手机版
解决时间 2021-03-03 22:32
  • 提问者网友:富士山上尢
  • 2021-03-03 02:47
unsafe public struct RAIN_COORDLINE
{
public fixed int horline[111]; //111条水平线的纵坐标
public fixed int verline[154]; //154条竖直线的横坐标
}
RAIN_COORDLINE rc =new RAIN_COORDLINE();

赋值的时候
rc.horline[0] = log.Horline[0];
编译通不过,提示:
不能使用非固定表达式中包含的固定大小缓冲区。请尝试使用 fixed 语句。
最佳答案
  • 五星知识达人网友:大漠
  • 2021-03-03 03:52
以前没接触过unsafe代码,不过刚才试了了一下。
不能使用非固定表达式中包含的固定大小缓冲区是说
RAIN_COORDLINE rc =new RAIN_COORDLINE();是一个非固定表达式,而rc.horline[0]使用了非固定表达式里面的固定大小缓冲区。
改成
fixed(RAIN_COORDLINE* rc1 = &rc)
{
rc1->horline[0]=log.Horline[0];
}
全部回答
  • 1楼网友:拜訪者
  • 2021-03-03 05:22
class a { int s[10]; public: a() { for(int i=0i<10;i++) s[i]=0;//默认构造给数组赋初值为零 } a(int s1[]) { for(int i=0i<10;i++) s[i]=s1[i]; //有参构造给数组赋值。 } };
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯