是!
而且在结构中一定要分配空间的!public  struct datatype
{
public int w;
public int[] a;
public int b;
public int ceng;
public int precost;
datatype(int length)
{
w=0;
a=new int[length];
b=0;
ceng=0;
precost=0;
}
}

解决方案 »

  1.   

    不用初始化也可以,无论用不用new都是分配在堆栈中。如不初始化那么该结构自动初始化为0。还有提醒楼主,struct在默认是private的,你想直接访问最好用public。
    namespace testStruct
    {
    /// <summary>
    /// Class1 的摘要说明。
    /// </summary>
    public  struct datatype
    {
    public int w;
    public int[] a;
    public int b;
    public int ceng;
    public int precost;
    }
    public struct sqstack
    {
    public datatype[]  data;
    public int top;
    }
    class Class1
    {
    static void Main(string[] args)
    {
    sqstack stack ;
    stack.data = new datatype[5];
    stack.data[0].w = 5;
    Console.WriteLine(stack.data[0].w.ToString());
    Console.Read();
    }
    }
    }
      

  2.   

    S.data[3].a[3]赋值的赋值如何实现!
      

  3.   

    使用属性
    public  struct datatype
    {
    public int w;
    private int[] a;
    public int b;
    public int ceng;
    public int precost;
                      public int[] A
                      {
                           get{return a;}
                      }
    }