例如动态分配 (new 或者malloc )char str[10][100]; 这样一个二维数组? 谢谢。

解决方案 »

  1.   

    先分配总的空间,然后挨个对指针数组的成员偏移定位。char *buffer = NULL;
    char *str[10] = {0};
    buffer = new [10 * 100];if (buffer)
    {
        for (int i = 0; i < 10; i ++)
        {
            str[i] = buffer + i * 100;
        }
    }
      

  2.   

    #include <iostream.h>int main()
    {
    //申请并分配空间
    int row=10,line=10;
    int**p=new int*[row];    //注意二级指针
    for(int i=0;i<row;++i)p[i]=new int[line];//使用数组
    p[5][5]=37;
    cout<<p[5][5]<<endl;//回收空间    
    for(i=0;i<row;++i)delete [] p[i];
    delete [] p;
    return 0;
    }
      

  3.   

    Sorry,忘了按楼主的意思改一下。
    #include <iostream.h>int main()
    {
    //申请并分配空间
    int row=10,line=100;
    char**str=new char*[row];    //注意二级指针
    for(int i=0;i<row;++i)str[i]=new char[line];//使用数组,这里只是举个例子
    str[9][95]='a';
    cout<<str[9][95]<<endl;//回收空间    
    for(i=0;i<row;++i)delete [] str[i];
    delete [] str;
    return 0;
    }
      

  4.   

    不过用二级指针比较容易出问题,你还是用CString类吧,#include <afx.h>就行,代码:#include <iostream.h>
    #include <afx.h>int main()
    {
    CString str[10];
    str[0]="string1";
    str[1]="string2";
    str[2]="string3";
    cout<<str[1]<<endl;
    }