什么意思?你是说运行时定义结构?你只能指针了。计算出整修数据块占多少内存,然后new一个这么大的空间

解决方案 »

  1.   

    若是只有几个,用union 试试。
      

  2.   

    用条件编译:如#ifdefine A
    struct Test
    {
    int a;
    }
    #else
    struct Test
    {
    char a;
    }
    #endiftypedef struct Test Test_A
      

  3.   

    用条件编译:如#ifdefine A
    struct Test
    {
    int a;
    }
    #else
    struct Test
    {
    char a;
    }
    #endiftypedef struct Test Test_A
      

  4.   

    typedef struct
    {
       CPoint t;
       Long m_lSpeed;
    }_TAGSHIP;
    在函数中
    你可以
    _TAGSHIP *m_ship=new _TAGSHIP[10];
    这样就可以用这个指针了。
      

  5.   

    说的不明白是吧,我解释一下。
    foxbase或者是SQL大家知道吧,我要实现的使用vc来实现他们的creat table
    的功能。
    winne_ll(feiyang) 让我试试,如果行我加分,不过我vc比较菜,有更简单的方法吗?
    opentuxedo(开缝的燕尾服)我知道这个原理,但真么实现呀?
      

  6.   

    这样也行,例如在*.txt文件中有下面一段字符,怎样把它读出来并转换成相应的类型。
    typedef struct
    {
     bool m_bEmployed;
     int  m_iAge;
     CString m_sName;
     int  m_iStatus;
    };
      

  7.   

    转换成类型??能行吗?用指针到是可以动态申请存放这样的一个结构空间的变量,直接typedef成一个类型???不行吧
      

  8.   

    联合用法举例;
    struct table
    {
      int pp;
      char tt[20];
    };
    struct list
    {
       char name;
       char password;
    };
    struct All
    {
        int ID;
        union
       {     struct table t;
         struct list l;
         int li;
       }uk;
    };
    在结构 All中 t,l,li共用一个内存单元,也就是起始地址相同。
    但你不应该用联合。它是死的,不能动态修改,你应该定义一种数据结构
    以不变应万变。可读取任何组合的表。
    比如;
    #define TYPEINT 0
    #define TYPECHAR 1
    #define TYPEINT 2
    struct colum
    {  
       int varType;//变量类型
       int bufferSize;//缓冲区大小
       int BufferOffset;   //缓冲区偏移;
    };
    class table//表的类定义
    {
      struct colum* pColums;//指向列数组的指针;
      int columCount;//列数  int  recordWidth;
      int  recordCount;
      void *tableBuffer;
      
      ……
      ……
    }
    算法:recordWidth=所有列的宽度总和;
    pColums[M].BufferOffset=小于M的列的bufferSize总和;
    第N个纪录的第M列的缓冲区指针=tableBuffer+recordWidth*N+
    pColums[M].BufferOffset;
      

  9.   

    当你得到table[m][n]的指针时,你可以根据第n列的数据类型table::pColum[n].varType;强制转换成相应类型处理,当然也可以重新分配等等,但你要维护这个数据结构,工作量不少啊,而且还要优化它。
      

  10.   

    doghead(长青) 太酷了!
    有没有简单的?
    期待中-------------