如我定义了一个数组:
static  char * _Table_1[][3] = {
  { "工作方式", "100", "Item AAA" },
  { "50", "100", "Item BBB" },
};
现在我想把其中的100改成200或是其它的数,怎么才能实现呢?求教能给个直接点的答案吗?菜鸟问了很多次还没解决。谢谢!

解决方案 »

  1.   

    _Table_1[0][1] = "200";
    _Table_1[1][1] = "300";如果你想赋变量,那就只能new一个char数组,再填充数据,然后还是向上面一样赋值。
    另外,你把常量指定串指针赋给char*,应该有警告。
      

  2.   

    再问,如果我把a=200后,再怎么做才能将a的内容赋给_Table_1[0][1],用_Table_1[0][1]=a和*_Table_1[0][1]=a都是不对的,具体怎么做才能实现呢?
      

  3.   

    你这是常量字符串啊,不能更改里面的内容了!
    要这样:static char _Table_1[][64] = 
    {
      "工作方式", "100", "Item AAA",
      "50", "100", "Item BBB"
    };memcpy(_Table_1[1],"200");
    memcpy(_Table_1[4],"200");
    如果你定义了int a=200,要先用itoa把a转化为char*,然后在memcpy
      

  4.   

    上面用memcpy(_Table_1[1],"200",64);
      

  5.   

    /*********************************************************************
    *定义LISTVIEW参数设置所需数组
    *********************************************************************/
    static  char * _Table_1[][3] = {
      { "工作方式", "160", "Item AAA" },
      { "50", "100", "Item BBB" },
      { "强磁时间", "110-C", "Item CCC" },
      { "逆变时间", "120-D", "Item DDD" },
      { "消磁时间", "130-E", "Item EEE" },
      { "高温设定", "140-F", "Item FFF" },
      { "777777-7777777", "150-G", "Item GGG" },
      { "888888-8888888", "160-H", "Item HHH" }
    };
    /*********************************************************************
    /*创建参数设置回调
    /*********************************************************************/
    static void _cbCallback1(WM_MESSAGE* pMsg) {
      int i,a,c, Id,NCode, Key,  Pressed = 0;//
      unsigned char *b;
      unsigned char d;
      WM_HWIN hDlg,hEdit0, hItem;
    //  WM_HWIN hWinSrc=pMsg->MsgId;
       hDlg = pMsg->hWin;
      switch (pMsg->MsgId)
      {
    case WM_INIT_DIALOG://初始化获取控件句柄
    hEdit0   = WM_GetDialogItem(hDlg, GUI_ID_EDIT0);
    // WM_HasFocus(hEdit0);
    EDIT_SetDecMode(hEdit0,0,1,200,0,0);//最小为1最大值为200
    //  EDIT_SetValue(hEdit0,5);//
    EDIT_SetMaxLen(hEdit0,3);//最长三位数
    for (i = 0; i < GUI_COUNTOF(_aDialogCreate1) - 1; i++) //所有按键不具备焦点
    {
      hItem = WM_GetDialogItem(hDlg, GUI_ID_USER + i);
          BUTTON_SetFocussable(hItem, 0);
    }
        break;
        case WM_PAINT:
    {
    GUI_DispStringAt("ggg", 100, 20);//写入最大提示数值
            c=atol(_Table_1[0][1]);//需要使用类似方法获得最初数值病放入EDIT控件中-----相当于初始值为10!!!!!
    // GUI_DispDecAt(c,100,30,2);//在当前指定位置显示C里的数值
    EDIT_SetValue(WM_GetDialogItem (hDlg, WM_GetId (WM__hWinFocus)),c);//通过获取焦点获取ID再获取句柄从而设置当前数值
    }
    break;
        case WM_NOTIFY_PARENT:
          NCode = pMsg->Data.v; 
      Id    = WM_GetId(pMsg->hWinSrc); 
    switch (NCode)
    {
      case WM_NOTIFICATION_CLICKED:
              Pressed = 1;
      case WM_NOTIFICATION_RELEASED: 
              if (Id == GUI_ID_USER +2)/* 是确定键按下删除窗体 */
        {    
            a=EDIT_GetValue(WM_GetDialogItem (hDlg, WM_GetId (WM__hWinFocus)));//通过获取焦点获取ID再获取句柄从而获得窗体数值
                *_Table_1[0][1]=a;//-->就是想在这里将a里的真实数值赋给_Table_1[0][1]
       WM_DeleteWindow(hDlg);
      }
      else 
    {
              Key = _aKey[Id - GUI_ID_USER - 3]; /* 数组以0开始,所有ID-3*/
            }
      GUI_SendKeyMsg(Key, Pressed); 
       }
       break;   default:
      
       WM_DefaultProc(pMsg);
      }
    }
      

  6.   

    这个是在C下面的一个ucgui用的学习程序,不是计算机上用的程序,所以语法减了不少,我也是菜鸟很多地方不明白.
      

  7.   

    char* pbuf = new char[32];
    strcpy(pbuf, itoa(a));
    _Table_1[0][1]=pbuf;由于你的常量字符串无法修改,所以重新new一个,记得new的需要在适当的时候释放。如果没有itoa,则用sprintf,有些系统没有itoa。
      

  8.   

    如我定义了一个数组:
    static char * _Table_1[][3] = {
      { "工作方式", "100", "Item AAA" },
      { "50", "100", "Item BBB" },
    };
     
    定义错误.必须用结构数组定义.