结构体和结构体指针以及new问题

需要new的是结构体指针,且此种情况需要有构造函数

typedef struct __TYPE{
    int ID;
    string val;
    __TYPE(int a,string val):ID(a),val(val){}
}TYPE;

typedef 定义别名 TYPE
下面定义时统一使用 TYPE varname(ID,val);
如果是结构体指针 TYPE* varname = new TYPE(ID,val);

注意二维数组全局变量就直接使用,此情况数组定长
当需要变长数组的时候使用new数组,只有new过的数组可以传入 int** 中,如果是数组强制转换的变量无法传入参数,在函数中调用会失败。下面错误演示

void test(int** a)
{
cout << a[0][0]
}
int B[2][2] = {0};
test((int**)B);