关于一段vc中二维数组的问题

来源:百度知道 编辑:UC知道 时间:2024/05/31 03:19:15
把我的代码贴出来供大家挑错吧:

void CprogDlg::OnButton10()
{
char **field;
CString FieldName; //字段名
m_EditFieldName.GetWindowText(FieldName);

CString DataType; //字段类型
m_pComboDataT.GetWindowText(DataType);

CString null_allowed; //字段是否可以为空
m_pComboNull.GetWindowText(null_allowed);

u=0;
Field = (char **) malloc (sizeof(char *) * 10 * 3);

if(FieldName=="")
{
MessageBox("字段名不能为空!");
return;
}
else
{
m_StrListDisplay.InsertItem(u,FieldName);
m_StrListDisplay.SetItemText(u,1,DataType);
m_StrListDisplay.SetItemText(u,2,null_allowed);
m_EditFieldName.SetWindowText("");
m_pComboDataT.SetWindowText("");
m_pComboNull.

我先来回答第二个问题,应该这样定义:
CString (*Field)[3];
Field=new CString[10][3];
这样就可以了。
因为new CString[10][3]返回的类型为class CString (*)[3],也就是指向有三个CString类型的元素的指针。而**Field指向的是CString类型,所以两者不可直接赋值。