c#结构体中如果含有其他结构体数组怎么初始化?求大神指教
如题,我想在s2中包含s1的数组,构造函数中s1u[]=news1[5];无法通过,求大神指教structs1{publicinta;publicintb;publici...
如题,我想在s2中包含s1的数组,构造函数中 s1 u[] = new s1[5];无法通过,求大神指教
struct s1
{
public int a;
public int b;
public int c;
public string[] d;
public s1(int aa,int bb, int cc,int dd)
{
a = aa;
b = bb;
c = cc;
d = new string[dd];
}
}
struct s2
{
int x;
int y;
int z;
s1 u[];
public s2(int aa, int bb, int cc, int dd)
{
x = aa;
y = bb;
z = cc;
s1 u[] = new s1[5];
}
} 展开
struct s1
{
public int a;
public int b;
public int c;
public string[] d;
public s1(int aa,int bb, int cc,int dd)
{
a = aa;
b = bb;
c = cc;
d = new string[dd];
}
}
struct s2
{
int x;
int y;
int z;
s1 u[];
public s2(int aa, int bb, int cc, int dd)
{
x = aa;
y = bb;
z = cc;
s1 u[] = new s1[5];
}
} 展开
1个回答
展开全部
这样做是不行的,结构在定义后的大小是固定的,你这样是类似动态数组,结构不支持
public string[] d; //这样的方法很有问题,建议改成固定大小的数组
有固定大小,就不需要new了
public string[] d; //这样的方法很有问题,建议改成固定大小的数组
有固定大小,就不需要new了
更多追问追答
追问
结构体中怎样定义固定长度的数组呢,不需要用new吗?
追答
public string d[10]; //这样定义,定义不用初始化 ,在构造函数初始化
for(int i=0;i<10;i++)
strcpy(d[i],"");
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询