c#结构体中如果含有其他结构体数组怎么初始化?求大神指教

如题,我想在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];
}
}

这样做是不行的,结构在定义后的大小是固定的,你这样是类似动态数组,结构不支持
public string[] d; //这样的方法很有问题,建议改成固定大小的数组
有固定大小,就不需要new了追问

结构体中怎样定义固定长度的数组呢,不需要用new吗?

追答

public string d[10]; //这样定义,定义不用初始化 ,在构造函数初始化
for(int i=0;i<10;i++)
strcpy(d[i],"");

追问

非常感谢,如果是结构体数组,比如我想定义public s1 u[10];怎么办?好像不初始化也不行啊

追答

概念有点乱,最好结构内不放结构数组,可以放个结构指针

温馨提示:内容为网友见解,仅供参考
无其他回答

C#中使用结构体,在结构体的定义中又包含另一个结构体的数组,该怎么定义...
程序调用时:采用 b ab; ab.suba=new a[10];的方式。但是不推荐这样用,可以用类去代替struct ;注:结构体内的变量最好加public 关键词。即:struct b{public int id;public a[] suba;} struct a { public int start; public int end; } struct b { public int id; public a[] suba; } static voi...

C#中使用结构体,在结构体的定义中又包含另一个结构体的数组,该怎么定义...
struct b { int id;a[] suba;};程序调用时:采用 b ab; ab.suba=new a[10];的方式。但是不推荐这样用,可以用类去代替struct ;注:结构体内的变量最好加public 关键词。即:struct b{public int id;public a[] suba;} struct a { public int start;public int end;} struct b { ...

结构体数组怎么初始化
结构体数组在定义的同时也可以初始化,例如:struct stu{ char *name; \/\/姓名 int num; \/\/学号 int age; \/\/年龄 char group; \/\/所在小组 float score; \/\/成绩 }class[5] = { {"Li ping", 5, 18, 'C', 145.0},{"Zhang ping", 4, 19, 'A', 130.5},{"He fang",...

c#语言中结构体如何定义结构体数组?新手求教!
问题1:开辟sizeof(StructStudent)*5个内存空间给数组stsz,并在for循环中使用无参构造方法初始化数组中的所有成员。问题2:如果不执行循环进行初始化,无任何影响,可正常使用。结构在编译时就已经初始化,所有的成员会用默认值进行初始化,而你问题1中是在运行时初始化的。问题3:如果要保存N个结构体...

结构体中包含结构体数组 怎么初始化
{ int nChildData;string strChildData;T_ChildStruct(){ nChildData = 0;strChildData = ""; \/\/ string可以不用写初始化,本身构造中就有 } };struct T_FatherStruct { int nFatherData;string strFatherData;T_ChildStruct arrChild[10];T_FatherStruct(){ nFatherData = 0;strFather...

c# 结构体 初始化
void Main(string[] args) { Crossing cro = new Crossing(0); \/\/ 调用带参的构造函数来初始化结构成员 Console.WriteLine(cro.flow_in[0]); \/\/ 此时构造函数体所有数组初始化为0 Console.ReadKey(); } }

结构体里面带结构体的变量怎么初始化
数据类型 数组名称〔数组长度〕={初始化值1,初始化值2,…, 初始化值n};例如,定义长度为5的整型数组,并对其初始化的语句如下:int A[5]={20,21,0,3,4};结构体变量的初始化方式与数组类似,分别给结构体的成员变量以初始值,而结构体成员变量的初始化遵循简单变量或数组的初始化方法。具体的...

结构体里的数组怎么初始化
比如你的结构体是stu,里面有成员数组a[10],直接for循环stu.a[i]=初始值(手机敲得,不好写完整默认你会for),注意如果stu是指针,那把.改成->

求C语言大神!!!QAQ这里有个结构体我不知道该怎么初始化
也就是数组的第一个结构体)。printf("%d\\n",(++p)->x);中的++p代表这个指针只想结构体数组的第二个结构体。Note:国内的大学都是老谭的书,一般那书上写的不是很好,建议你看下c专家编程,C你所知道的495个问题,平时多上上博客园等论坛。不懂可以继续联系我857228546 ...

结构体数组怎么初始化
\/\/ 有两种方法可以初始化结构体数组,如下例所示:include <iostream> include <string> include <iomanip> include <memory> using namespace std;\/\/ custom_type typedef struct tagStudent { int Id;string Name;}Student;int main(){ \/\/ 设置左对齐 cout.flags(ios::left);\/\/ 方式1: ...

相似回答