MFC
我有字符串,格式如下:
"aa1","bb1","cc","dd"
"aa2","bb2","cc","dd"
"aa3","bb3","cc","dd"
"aa4","bb4","cc","dd"
"aa5","bb5","cc","dd"
"aa6","bb6","cc","dd"
列是固定的,k列(k > 3)
行不固定,是从文件里读取出来的,
现在想动态生成一个n行k列数组,
有没有是动态分配内存的?
比如CString [][K],前面[]里可以不用输参数,
这样我就可以随意赋值和取值?我查了很多网上资料,和我想要的那种总是有点出入,主要时间太紧急了,
只能请教各位高手,最好有可编译代码,及内存delete代码,不胜感激!!
100分奉上。

解决方案 »

  1.   

    //CString str[k][]; 
    CString **str = new CStirng*[k];
    for(int i = 0; i < m; i++)
      str[i] = new CString[n];
      ...
    for(int i = 0; i < m; i++)
        delete []str[i];
    delete []str;
      

  2.   

    CString (*Strings)[K] = new CString[N][K];
    这样是动态构造一个CString型的二维数组,K必须是常数,N可以是变量,Strings就是这个数组的指针,之后就可以像使用二维数组一样用双重循环来赋值,最后不用时通过delete[] Strings来销毁。
      

  3.   

    CStringArray,就可以不用考虑动态分配的问题了,每一行作为一个CString,取出一行就放到CStringArray中去...
      

  4.   

    http://topic.csdn.net/u/20090220/20/0f3c81f7-ab58-4891-9103-af292073e8db.html
      

  5.   

    定义一个结构体(或者类),然后采用链表就可以了。
    typedef struct  _tagXX
    {
    CString s1;
    CString s2;
    ....
    }XX,*PXX;在使用时,建立链表即可。CPtrList list;PXX p = new XX;
    p->s1 = “aaa1”;
    list.AddTail(p);